从Rails 3.1.0.rc6升级到Rails 3.1.0后,运行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
。
答案 0 :(得分:27)
你必须做
config.assets.compile = true
资产期间:预编译任务。
似乎是rails 3.1中的一个错误。
答案 1 :(得分:1)
我需要同时使用
config.assets.compile = true
config.assets.digest = true
答案 2 :(得分:0)
我发现这是由于
config.assets.compress = false
如果您尝试使用
进行编译,那是错误的bundle exec rake assets:precompile RAILS_ENV=production
它确实应该抛出更好的错误。