从rc6升级到Rails 3.1.0,资产预编译失败
从Rails 3.1.0.rc6升级到Rails 3.1.0之后,运行assets:precompile
时出现了一些错误消息assets:precompile
任务如下:
$ RAILS_ENV=production RAILS_GROUPS=assets rake assets:clean tmp:clear assets:precompile rake aborted! ie-spacer.gif isn't precompiled (in app/assets/stylesheets/jquery.gritter.css.scss) Tasks: TOP => assets:precompile (See full trace by running task with --trace)
我尝试将config.assets.precompile << 'ie-spacer.gif'
到config/application.rb
,但它仍然失败。
jquery.gritter.css.scss
的行是:
background: asset_url('ie-spacer.gif', image);
我试过了:
background: asset_path('ie-spacer.gif', image); background: image_url('ie-spacer.gif'); background: image_path('ie-spacer.gif');
所有失败的ie-spacer.gif isn't precompiled
。
你必须做
config.assets.compile = true
资产期间:预编译任务。
似乎是rails 3.1中的一个错误。
我需要同时使用它们
config.assets.compile = true config.assets.digest = true
我发现这是由于
config.assets.compress = false
哪个是错的,如果你正在尝试编译
bundle exec rake assets:precompile RAILS_ENV=production
它确实应该抛出更好的错误。