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']
在开发环境(therubyracer
)上一切正常。现在我将 nginx + passenger 设置为 运行 my rails app 用于生产环境。除了我得到 404.
该文件包含 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']