我在使用自定义 RackFilter 设置并且能够在生产中正确定位或利用 rake:precompile 功能时遇到问题。我的环境如下:
jruby 1.7.3
Rails 3.2.12
我正在使用的机架过滤器映射如下:
<filter-mapping>
<filter-name>RackFilter</filter-name>
<url-pattern>/r/*</url-pattern>
</filter-mapping>
为了利用资产管道,而不使用预编译进行开发,我将以下内容添加到 application.rb
config.assets.prefix = "/r/assets"
所有这些在开发模式下都可以正常工作。当我尝试在生产模式下运行应用程序时,问题就开始了。当我做 assets:precompile 我的 assets 目录结构如下所示:
/public/r/assets
当我尝试运行应用程序时,出现以下错误:
ActionView::Template::Error (application.css isn't precompiled):
这为我指明了应用程序未正确定位 manifest.yml 文件的方向,因此我将以下内容添加到我的 production.rb 中:
config.assets.manifest = Rails.root.join("public/r/assets")
然后我收到以下错误:
[WARN] 404 - GET /r/assets/application-3b09aaf17ec25843ede11b1160ca46ab.css
我试图将我的 production.rb 更改为包括:
config.assets.prefix = "public/r/assets"
但仍然得到
[WARN] 404 - GET /public/r/assets/application-3b09aaf17ec25843ede11b1160ca46ab.css
所以在这一点上,我的想法已经不多了,可以使用任何建议或想法。非常感谢你!