从rc6升级到Rails 3.1.0,资产预编译失败

时间:2011-08-31 05:25:35

标签: ruby-on-rails

从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

3 个答案:

答案 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

它确实应该抛出更好的错误。