rails 3.2预编译资产导致内部服务器错误500和日志:未命中缓存

时间:2012-02-05 21:59:17

标签: ruby-on-rails asset-pipeline sprockets ruby-on-rails-3.2

在生产模式下的rails 3.2应用程序中。我在config / environments / production.rb中有以下设置:

config.assets.compile = false

当我访问应用程序主页时,我得到一个(内部服务器错误500)并且在日志中我只能看到

cache: [GET /] miss

如果我改变

config.assets.compile = true
几乎一切都运转良好。但我认为这意味着rake资产:在这种情况下预编译不能正常工作,我该如何解决?

注意: 如果Sprockets live编译设置为true(并且网站正常工作)并且我检查了firebug net log,我可以看到没有提供某些css或js文件,但这对我来说没问题,因为它们实际上并不存在。 例如,我不在成本视图中使用任何视图特定的css或js,并且我没有costs.css或costs.js。这可能是问题的根源,我是否必须创建所有这些文件,即使它们是空的?

1 个答案:

答案 0 :(得分:2)

如果你引用一个文件 - 也就是说它被Rails引用 - 那么它应该存在。

Rails助手中发生的事情是它将在清单中查找包含所有文件的摘要(用于生成)的文件。如果文件不存在,这将失败。

我建议您删除对不存在的文件的任何引用。

应该将对您需要的文件的引用添加到预编译数组中。