javascript_include_tag 生产环境中缺少文件 (404)

javascript_include_tag file is missing on the production environment ( 404 )

在开发环境(therubyracer)上一切正常。现在我将 nginx + passenger 设置为 运行 my rails app 用于生产环境。除了我得到 404.

的一个 (slides_index.js) 文件外,一切正常

该文件包含 jQuery 代码, 必须 运行 仅在一页 上。 为此,我在该页面上使用 <%= javascript_include_tag "slides_index" %>

我 运行 rake assets:precompile 创建了 public/assets/application-1774b3421bf0b4433ea3628c1c5dce38.js。该路径中没有任何其他 .js 文件,尤其是没有 slides_index.js(那个在 app/assets/javascripts/ 中)。

很明显,如果 public/assets/ 路径中没有 slides_index.js,那么我会得到 404。问题是为什么它在 therubyracer(开发环境)下运行良好以及如何以正确的方式修复它?

默认情况下 Rails 仅将 application.js 编译为独立文件。您可以在 config/application.rb 中添加其他要编译的文件 config.assets.precompile,因此添加 slides_index:

config.assets.precompile += ['slides_index.js']