我有一个我不知道的问题。 我做了一些谷歌搜索,但没有找到合适的答案,所以我在问社区。
我有一个具有4种环境的Rails应用程序:开发,测试,登台和生产。 在开发,测试和生产中,一切工作都很好,但是由于某种原因,资产没有在分期中得到服务。
暂存基本上是生产的副本。 我使用Capistrano部署站点。 这些资产正在服务器上进行编译,并且在服务器上的类型为asset-xxxxx.ext 。 这按预期工作。
脚本和样式表也以相同的方式( application-xxxxx.css , application-xxxxx.js )进行编译。 这也按预期工作。
问题
我的样式表中的图片网址未更改以反映sproket设置的路径。 例如,文件sprite.png更改为sprite-25d57a117a61de097e8f943ff745e8b0.png ,但css仍然是sprite.png 。
什么是混淆是环境/ staging.rb相同环境/ production.rb和我在生产没有问题。
故障
我尝试使用以下值:
config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = false
config.assets.digest = true
但没有任何效果。 正如我所说,在生产中完全相同的设置也可以...
谢谢您的帮助!!!
试试下面的代码:
在staging.rb中
config.assets.compile = true
然后运行commad:
RAILS_ENV=staging rake assets:precompile
并用清单文件推送已编译的文件。
希望它能工作!!!