2

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

config.assets.compile = false

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

cache: [GET /] miss

如果我改变

config.assets.compile = true

几乎一切工作正常。但我认为这意味着 rake assets:precompile 在这种情况下无法正常工作,我该如何解决?

注意:如果 Sprockets 实时编译设置为 true(并且该站点有效)并且我检查了 firebug 网络日志,我可以看到一些 css 或 js 文件没有提供,但这对我来说没问题,因为它们并不是真的不存在。例如,我没有在成本视图中使用任何特定于视图的 css 或 js,而且我没有 cost.css 或 cost.js。这可能是问题的根源吗,我是否必须创建所有这些文件,即使它们是空的?

4

1 回答 1

2

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

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

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

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

于 2012-02-07T08:41:48.350 回答