title: application.css not being served as an asset
body: <p><strong>EDIT 4, 5 and 6</strong></p>
  
  <p>8 hours in, any more ideas are welcome :)  Maybe this bug is already known and solved, but I get the behaviour I described in edit 2&amp;3, when you have this in a .css.erb file in app/assets/stylesheets :</p>
  
  <pre><code>li {
      background-image: url(&lt;%= asset_path "logo_80px_80px.png" %&gt;);
  }
  </code></pre>
  
  <p>The problem part seems to be the <code>asset_path</code> method call, but .css.scss also breaks it with:</p>
  
  <pre><code>li {
      background-image: url(image-path("logo_80px_80px.png"));
  }
  </code></pre>
  
  <p>My GemFile is:</p>
  
  <pre><code>source 'http://rubygems.org'
  
  gem 'rails', '3.1.3'
  gem 'pg', '0.11.0'
  gem 'gravatar_image_tag', '1.0.0.pre2'
  gem 'will_paginate'
  gem 'rake'
  gem 'jquery-rails'
  gem 'nested_form'
  gem 'acts-as-taggable-on'
  
  gem 'sass-rails'
  group :assets do
    gem 'coffee-rails', '~&gt; 3.1.0'
    gem 'uglifier', '&gt;= 1.0.3'
  end
  
  group :development do
    gem 'rspec-rails', '2.5.0'
    gem 'annotate', '2.4.0'
    gem 'faker', '0.3.1'
  end
  
  
  group :test do
    gem 'rspec', '2.5.0'
    gem 'webrat', '0.7.1'
    gem 'factory_girl_rails', '1.0'
  end
  
  group :production do
    gem 'therubyracer-heroku'
  end
  </code></pre>
  
  <p>My Gemfile.lock is:</p>
  
  <pre><code>GEM
    remote: http://rubygems.org/
    specs:
      actionmailer (3.1.3)
        actionpack (= 3.1.3)
        mail (~&gt; 2.3.0)
      actionpack (3.1.3)
        activemodel (= 3.1.3)
        activesupport (= 3.1.3)
        builder (~&gt; 3.0.0)
        erubis (~&gt; 2.7.0)
        i18n (~&gt; 0.6)
        rack (~&gt; 1.3.5)
        rack-cache (~&gt; 1.1)
        rack-mount (~&gt; 0.8.2)
        rack-test (~&gt; 0.6.1)
        sprockets (~&gt; 2.0.3)
      activemodel (3.1.3)
        activesupport (= 3.1.3)
        builder (~&gt; 3.0.0)
        i18n (~&gt; 0.6)
      activerecord (3.1.3)
        activemodel (= 3.1.3)
        activesupport (= 3.1.3)
        arel (~&gt; 2.2.1)
        tzinfo (~&gt; 0.3.29)
      activeresource (3.1.3)
        activemodel (= 3.1.3)
        activesupport (= 3.1.3)
      activesupport (3.1.3)
        multi_json (~&gt; 1.0)
      acts-as-taggable-on (2.2.1)
        rails (~&gt; 3.1)
      annotate (2.4.0)
      arel (2.2.1)
      builder (3.0.0)
      coffee-rails (3.1.1)
        coffee-script (&gt;= 2.2.0)
        railties (~&gt; 3.1.0)
      coffee-script (2.2.0)
        coffee-script-source
        execjs
      coffee-script-source (1.1.3)
      diff-lcs (1.1.3)
      erubis (2.7.0)
      execjs (1.2.12)
        multi_json (~&gt; 1.0)
      factory_girl (1.3.3)
      factory_girl_rails (1.0)
        factory_girl (~&gt; 1.3)
        rails (&gt;= 3.0.0.beta4)
      faker (0.3.1)
      gravatar_image_tag (1.0.0.pre2)
      hike (1.2.1)
      i18n (0.6.0)
      jquery-rails (1.0.19)
        railties (~&gt; 3.0)
        thor (~&gt; 0.14)
      json (1.6.3)
      mail (2.3.0)
        i18n (&gt;= 0.4.0)
        mime-types (~&gt; 1.16)
        treetop (~&gt; 1.4.8)
      mime-types (1.17.2)
      multi_json (1.0.4)
      nested_form (0.1.1)
      nokogiri (1.5.0-x86-mingw32)
      pg (0.11.0-x86-mingw32)
      polyglot (0.3.3)
      rack (1.3.5)
      rack-cache (1.1)
        rack (&gt;= 0.4)
      rack-mount (0.8.3)
        rack (&gt;= 1.0.0)
      rack-ssl (1.3.2)
        rack
      rack-test (0.6.1)
        rack (&gt;= 1.0)
      rails (3.1.3)
        actionmailer (= 3.1.3)
        actionpack (= 3.1.3)
        activerecord (= 3.1.3)
        activeresource (= 3.1.3)
        activesupport (= 3.1.3)
        bundler (~&gt; 1.0)
        railties (= 3.1.3)
      railties (3.1.3)
        actionpack (= 3.1.3)
        activesupport (= 3.1.3)
        rack-ssl (~&gt; 1.3.2)
        rake (&gt;= 0.8.7)
        rdoc (~&gt; 3.4)
        thor (~&gt; 0.14.6)
      rake (0.9.2.2)
      rdoc (3.12)
        json (~&gt; 1.4)
      rspec (2.5.0)
        rspec-core (~&gt; 2.5.0)
        rspec-expectations (~&gt; 2.5.0)
        rspec-mocks (~&gt; 2.5.0)
      rspec-core (2.5.2)
      rspec-expectations (2.5.0)
        diff-lcs (~&gt; 1.1.2)
      rspec-mocks (2.5.0)
      rspec-rails (2.5.0)
        actionpack (~&gt; 3.0)
        activesupport (~&gt; 3.0)
        railties (~&gt; 3.0)
        rspec (~&gt; 2.5.0)
      sass (3.1.12)
      sass-rails (3.1.5)
        actionpack (~&gt; 3.1.0)
        railties (~&gt; 3.1.0)
        sass (~&gt; 3.1.10)
        tilt (~&gt; 1.3.2)
      sprockets (2.0.3)
        hike (~&gt; 1.2)
        rack (~&gt; 1.0)
        tilt (~&gt; 1.1, != 1.3.0)
      therubyracer-heroku (0.8.1.pre3)
      thor (0.14.6)
      tilt (1.3.3)
      treetop (1.4.10)
        polyglot
        polyglot (&gt;= 0.3.1)
      tzinfo (0.3.31)
      uglifier (1.2.0)
        execjs (&gt;= 0.3.0)
        multi_json (&gt;= 1.0.2)
      webrat (0.7.1)
        nokogiri (&gt;= 1.2.0)
        rack (&gt;= 1.0)
        rack-test (&gt;= 0.5.3)
      will_paginate (3.0.2)
  
  PLATFORMS
    x86-mingw32
  
  DEPENDENCIES
    acts-as-taggable-on
    annotate (= 2.4.0)
    coffee-rails (~&gt; 3.1.0)
    factory_girl_rails (= 1.0)
    faker (= 0.3.1)
    gravatar_image_tag (= 1.0.0.pre2)
    jquery-rails
    nested_form
    pg (= 0.11.0)
    rails (= 3.1.3)
    rake
    rspec (= 2.5.0)
    rspec-rails (= 2.5.0)
    sass-rails
    therubyracer-heroku
    uglifier (&gt;= 1.0.3)
    webrat (= 0.7.1)
    will_paginate
  </code></pre>
  
  <p>application.rb contents:</p>
  
  <pre><code>require File.expand_path('../boot', __FILE__)
  
  require 'rails/all'
  
  
  if defined?(Bundler)
    Bundler.require(*Rails.groups(:assets =&gt; %w(development test)))
  end
  
  module AjpApp
    class Application &lt; Rails::Application
      config.encoding = "utf-8"
      config.filter_parameters += [:password]
      config.assets.enabled = true
      config.assets.version = '1.0'
    end
  end
  </code></pre>
  
  <p>config/environments/production.rb contents:</p>
  
  <pre><code>AjpApp::Application.configure do
    config.cache_classes = true
    config.consider_all_requests_local       = false
    config.action_controller.perform_caching = true
    config.serve_static_assets = false
    config.assets.compress = true
    config.assets.compile = true
    config.assets.digest = true
    config.i18n.fallbacks = true
    config.active_support.deprecation = :notify
  end
  </code></pre>
  
  <p><strong>---Archived---</strong></p>
  
  <p><strong>ORIGINAL POST</strong></p>
  
  <p>I have a Rails 3.1 application that was serving the application.css file when in production mode.  <a href="https://stackoverflow.com/questions/8554459/more-informative-sass-error-messages">After having some unrelated problems</a> I found out about <a href="http://openhood.com/rails/sass/assets/sprockets/2011/05/23/static-assets-on-rails-3.1/" rel="nofollow noreferrer">precompiling the assets</a> using:</p>
  
  <pre><code>bundle exec rake assets:precompile RAILS_ENV=production
  </code></pre>
  
  <p>My application.css file, pre-compiled to produce: 'application-79d6fafe46c10758d8f5a921f1e55ecd.css' but is now not being served despite being present in the public/assets folder.  The application.js file is being served fine (as application-9a36deba94d6308ab9bebe4e30a93959.js).  Also I note that this problem first appeared after I created a .css.erb file, as suggested by the article on <a href="http://openhood.com/rails/sass/assets/sprockets/2011/05/23/static-assets-on-rails-3.1/" rel="nofollow noreferrer">precompilation</a>.</p>
  
  <p>Any thoughts on what I try to do?  I'm going to try undoing the .css.erb file, run precompilation again and see if I get my application.css file served.</p>
  
  <p><strong>EDIT 1</strong></p>
  
  <p>Problem does not come from changing <code>.css</code> file to <code>.css.erb</code>.  And the erb works fine.  Problem seems to come when the <code>asset_path</code> function is used e.g.:</p>
  
  <pre><code>.button_one {
      background-image: url(&lt;%= asset_path "activities/text_editor_toolbar.png" %&gt;);
  }
  </code></pre>
  
  <p>This works to give the correct string e.g.: <code>assets/activities/text_editor_toolbar.png"</code>, which shows up in the compiled <code>application-(hash).css</code> file which is served in development but not production mode.  This is so weird. :| :@</p>
  
  <p><strong>Edit 2</strong>
  Okay this just got better, but weirder.  Seems if I run it once in production mode, it fails.  Run it again in development, then again in production and <a href="https://stackoverflow.com/questions/8568786/poor-time-performance-of-rake-assetsprecompile">it'll spend ages and launch the 'Microsoft Console Based Script Host' just like it's precompiling the assets</a>, which from the output it seems like it's doing, before finally rendering the page and serving the application-(hash).css successfully:</p>
  
  <pre><code>C:\documents\ror\ajp_app&gt;rails s -e production
  =&gt; Booting WEBrick
  =&gt; Rails 3.1.3 application starting in production on http://0.0.0.0:3000
  =&gt; Call with -d to detach
  =&gt; Ctrl-C to shutdown server
  [2011-12-19 23:59:12] INFO  WEBrick 1.3.1
  [2011-12-19 23:59:12] INFO  ruby 1.9.2 (2011-07-09) [i386-mingw32]
  [2011-12-19 23:59:12] INFO  WEBrick::HTTPServer#start: pid=4052 port=3000
  cache: [GET /] miss
  
  
  Started GET "/" for 127.0.0.1 at 2011-12-19 23:59:26 +0000
    Processing by PagesController#home as HTML
  Rendered pages/home.html.erb within layouts/application (85.0ms)
  Rendered layouts/_header.html.erb (2.0ms)
  Rendered layouts/_footer.html.erb (1.0ms)
  Completed 200 OK in 393ms (Views: 382.0ms | ActiveRecord: 10.0ms)
  cache: [GET /assets/application-a05ca896e645eacb50266c7866d18a0f.css] miss
  
  
  Started GET "/assets/application-a05ca896e645eacb50266c7866d18a0f.css" for 127.0.0.1 at 2011-12-19 23:59:27 +0000
  Nonexistent asset application-a05ca896e645eacb50266c7866d18a0f.css @ a05ca896e645eacb50266c7866d18a0f
  Served asset /application-a05ca896e645eacb50266c7866d18a0f.css - 404 Not Found (44ms)
  
  ActionController::RoutingError (No route matches [GET] "/assets/application-a05ca896e645eacb50266c7866d18a0f.css"):
  
  
  Rendered C:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.1.3/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout
   (1.0ms)
  [2011-12-19 23:59:39] INFO  going to shutdown ...
  [2011-12-19 23:59:39] INFO  WEBrick::HTTPServer#start done.
  Exiting
  
  C:\documents\ajp_app&gt;rails s
  =&gt; Booting WEBrick
  =&gt; Rails 3.1.3 application starting in development on http://0.0.0.0:3000
  =&gt; Call with -d to detach
  =&gt; Ctrl-C to shutdown server
  [2011-12-20 00:00:14] INFO  WEBrick 1.3.1
  [2011-12-20 00:00:14] INFO  ruby 1.9.2 (2011-07-09) [i386-mingw32]
  [2011-12-20 00:00:14] INFO  WEBrick::HTTPServer#start: pid=2752 port=3000
  
  
  Started GET "/" for 127.0.0.1 at 2011-12-20 00:00:20 +0000
    Processing by PagesController#home as HTML
    ←[1m←[36m (0.0ms)←[0m  ←[1mSHOW search_path←[0m
    ←[1m←[35mUser Load (1.0ms)←[0m  SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1
  Rendered pages/home.html.erb within layouts/application (171.0ms)
  Compiled application.css  (4ms)  (pid 2752)
  Compiled colours.css  (9ms)  (pid 2752)
  Compiled custom.css  (1ms)  (pid 2752)
  Compiled activity.css  (26ms)  (pid 2752)
  Compiled jquery/jquery-ui-1.8.13.custom.css  (1ms)  (pid 2752)
  Compiled ellib/elcommon.css  (30ms)  (pid 2752)
  Compiled ellib/eldialogform.css  (0ms)  (pid 2752)
  Compiled elrte/elrte.css  (0ms)  (pid 2752)
  Compiled activities/text_editor.css  (2ms)  (pid 2752)
  Compiled errors.activities.css  (0ms)  (pid 2752)
  Compiled errors_and_notices.css  (0ms)  (pid 2752)
  Compiled general.css  (0ms)  (pid 2752)
  Compiled application.js  (15ms)  (pid 2752)
  Compiled jquery.js  (13ms)  (pid 2752)
  Compiled jquery_ujs.js  (0ms)  (pid 2752)
  Compiled jquery-ui.js  (19ms)  (pid 2752)
  Compiled AJP_main.js  (1ms)  (pid 2752)
  Compiled ajp.utilities.js  (2ms)  (pid 2752)
  Rendered layouts/_header.html.erb (4.0ms)
  Rendered layouts/_footer.html.erb (2.0ms)
  Completed 200 OK in 1091ms (Views: 1076.0ms | ActiveRecord: 15.0ms)
  
  
  Started GET "/assets/custom.css?body=1" for 127.0.0.1 at 2011-12-20 00:00:28 +0000
  Served asset /custom.css - 304 Not Modified (6ms)
  
  
  Started GET "/assets/jquery/jquery-ui-1.8.13.custom.css?body=1" for 127.0.0.1 at 2011-12-20 00:00:28 +0000
  Served asset /jquery/jquery-ui-1.8.13.custom.css - 304 Not Modified (7ms)
  
  
  Started GET "/assets/ellib/eldialogform.css?body=1" for 127.0.0.1 at 2011-12-20 00:00:28 +0000
  Served asset /ellib/eldialogform.css - 304 Not Modified (5ms)
  
  
  Started GET "/assets/elrte/elrte.css?body=1" for 127.0.0.1 at 2011-12-20 00:00:28 +0000
  Served asset /elrte/elrte.css - 304 Not Modified (5ms)
  
  
  Started GET "/assets/activities/text_editor.css?body=1" for 127.0.0.1 at 2011-12-20 00:00:28 +0000
  Served asset /activities/text_editor.css - 304 Not Modified (9ms)
  
  
  Started GET "/assets/activity.css?body=1" for 127.0.0.1 at 2011-12-20 00:00:28 +0000
  Served asset /activity.css - 200 OK (10ms)
  
  
  Started GET "/assets/errors.activities.css?body=1" for 127.0.0.1 at 2011-12-20 00:00:28 +0000
  Served asset /errors.activities.css - 304 Not Modified (3ms)
  
  
  Started GET "/assets/errors_and_notices.css?body=1" for 127.0.0.1 at 2011-12-20 00:00:28 +0000
  Served asset /errors_and_notices.css - 304 Not Modified (3ms)
  
  
  Started GET "/assets/general.css?body=1" for 127.0.0.1 at 2011-12-20 00:00:28 +0000
  Served asset /general.css - 304 Not Modified (3ms)
  
  
  Started GET "/assets/jquery.js?body=1" for 127.0.0.1 at 2011-12-20 00:00:28 +0000
  Served asset /jquery.js - 304 Not Modified (12ms)
  
  
  Started GET "/assets/jquery_ujs.js?body=1" for 127.0.0.1 at 2011-12-20 00:00:28 +0000
  Served asset /jquery_ujs.js - 304 Not Modified (8ms)
  
  
  Started GET "/assets/jquery-ui.js?body=1" for 127.0.0.1 at 2011-12-20 00:00:29 +0000
  Served asset /jquery-ui.js - 304 Not Modified (42ms)
  
  
  Started GET "/assets/AJP_main.js?body=1" for 127.0.0.1 at 2011-12-20 00:00:29 +0000
  Served asset /AJP_main.js - 304 Not Modified (3ms)
  
  
  Started GET "/assets/ajp.utilities.js?body=1" for 127.0.0.1 at 2011-12-20 00:00:29 +0000
  Served asset /ajp.utilities.js - 304 Not Modified (10ms)
  
  
  Started GET "/assets/ellib/elcommon.css?body=1" for 127.0.0.1 at 2011-12-20 00:00:29 +0000
  Served asset /ellib/elcommon.css - 304 Not Modified (5ms)
  
  
  Started GET "/assets/colours.css?body=1" for 127.0.0.1 at 2011-12-20 00:00:29 +0000
  Served asset /colours.css - 304 Not Modified (12ms)
  
  
  Started GET "/assets/activities/hello.png" for 127.0.0.1 at 2011-12-20 00:00:30 +0000
  Served asset /activities/hello.png - 404 Not Found (13ms)
  
  ActionController::RoutingError (No route matches [GET] "/assets/activities/hello.png"):
  
  
  Rendered C:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.1.3/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout
   (1.0ms)
  [2011-12-20 00:00:37] INFO  going to shutdown ...
  [2011-12-20 00:00:37] INFO  WEBrick::HTTPServer#start done.
  Exiting
  
  C:\documents\ajp_app&gt;rails s -e production
  =&gt; Booting WEBrick
  =&gt; Rails 3.1.3 application starting in production on http://0.0.0.0:3000
  =&gt; Call with -d to detach
  =&gt; Ctrl-C to shutdown server
  [2011-12-20 00:01:17] INFO  WEBrick 1.3.1
  [2011-12-20 00:01:17] INFO  ruby 1.9.2 (2011-07-09) [i386-mingw32]
  [2011-12-20 00:01:17] INFO  WEBrick::HTTPServer#start: pid=5912 port=3000
  cache: [GET /] miss
  
  
  Started GET "/" for 127.0.0.1 at 2011-12-20 00:01:20 +0000
    Processing by PagesController#home as HTML
  Rendered pages/home.html.erb within layouts/application (91.0ms)
  Rendered layouts/_header.html.erb (3.0ms)
  Rendered layouts/_footer.html.erb (1.0ms)
  Completed 200 OK in 400ms (Views: 387.0ms | ActiveRecord: 12.0ms)
  cache: [GET /assets/application-a05ca896e645eacb50266c7866d18a0f.css] miss, store
  
  
  Started GET "/assets/application-a05ca896e645eacb50266c7866d18a0f.css" for 127.0.0.1 at 2011-12-20 00:01:21 +0000
  Compiled application-a05ca896e645eacb50266c7866d18a0f.css  (4ms)  (pid 5912)
  Compiled colours.css  (9ms)  (pid 5912)
  Compiled custom.css  (0ms)  (pid 5912)
  Compiled activity.css  (21ms)  (pid 5912)
  Compiled jquery/jquery-ui-1.8.13.custom.css  (1ms)  (pid 5912)
  Compiled ellib/elcommon.css  (0ms)  (pid 5912)
  Compiled ellib/eldialogform.css  (1ms)  (pid 5912)
  Compiled elrte/elrte.css  (1ms)  (pid 5912)
  Compiled activities/text_editor.css  (0ms)  (pid 5912)
  Compiled errors.activities.css  (1ms)  (pid 5912)
  Compiled errors_and_notices.css  (0ms)  (pid 5912)
  Compiled general.css  (0ms)  (pid 5912)
  Served asset /application-a05ca896e645eacb50266c7866d18a0f.css - 200 OK (871ms)
  cache: [GET /assets/application-9a36deba94d6308ab9bebe4e30a93959.js] miss
  
  
  Started GET "/assets/application-9a36deba94d6308ab9bebe4e30a93959.js" for 127.0.0.1 at 2011-12-20 00:01:22 +0000
  Compiled application-9a36deba94d6308ab9bebe4e30a93959.js  (9ms)  (pid 5912)
  Compiled jquery.js  (13ms)  (pid 5912)
  Compiled jquery_ujs.js  (1ms)  (pid 5912)
  Compiled jquery-ui.js  (19ms)  (pid 5912)
  Compiled AJP_main.js  (0ms)  (pid 5912)
  Compiled ajp.utilities.js  (32ms)  (pid 5912)
  Served asset /application-9a36deba94d6308ab9bebe4e30a93959.js - 304 Not Modified (110802ms)
  cache: [GET /assets/logo_80px_80px-27d7b084daa398621574b10963529e84.png] miss
  
  
  Started GET "/assets/logo_80px_80px-27d7b084daa398621574b10963529e84.png" for 127.0.0.1 at 2011-12-20 00:03:13 +0000
  Served asset /logo_80px_80px-27d7b084daa398621574b10963529e84.png - 304 Not Modified (3ms)
  cache: [GET /assets/hello.png] miss
  
  
  Started GET "/assets/hello.png" for 127.0.0.1 at 2011-12-20 00:03:13 +0000
  Served asset /hello.png - 404 Not Found (3ms)
  
  ActionController::RoutingError (No route matches [GET] "/assets/hello.png"):
  
  
  Rendered C:/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.1.3/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout
   (1.0ms)
  </code></pre>
  
  <p>.
  .
  .
  :-D
  &amp;
  :-o
  ?</p>
  
  <p><strong>Edit 3</strong>
  You don't need to run it once in production mode first (i.e. it's actually the act of running in development, that does something to trigger the production mode to (?) re-precompile the assets).  After using <code>rake</code> to precompile the assets, it just needs to be run in development mode, request a page (which <strong>is</strong> necessary), then run in production and requesting home page again is enough for it to trigger what seems like the second precompile.</p>
  
  <p>This has now survived a complete reboot of my machine (win 7-64bit).  So I think it's a consistent bug.</p>
  
  <p>Is StackOverflow the best place to continue this discussion or is it best to go on to the <a href="https://github.com/sstephenson/sprockets" rel="nofollow noreferrer">Sprocket git-hub page</a>, or something?</p>