我的问题:在生产模式下启动应用程序时,未正确加载所有图像。 我只看到图像的占位符。当我复制image-url时,我得到“assets / mylogo.png”。我想念指纹。
我的配置:
宝石:
rails 3.1.0
compass, :git => 'git://github.com/chriseppstein/compass.git'
sprockets 2.0.2
config / application.rb:
config.assets.enabled = true
config / environments / production.rb:
config.cache_classes = true
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.serve_static_assets = false
config.assets.compress = true
部署后我运行
rake assets:clean
rake assets:precompile
在public / assets文件夹中,所有图像(和js,css文件)都带有指纹。
在开发模式下一切正常。我无法弄清楚为什么没有正确使用图像。
答案 0 :(得分:1)
我看到了问题。您在生产配置中缺少这些行:
config.assets.digest = true config.assets.compile = false
第一种方法是在助手的输出中添加摘要。
第二个告诉rails不要将任何资产请求交还给Sprockets,而是假设它们是预编译的(这就是你想要的)。
在Rails 3.1.0中,只有预先编译了已消化的资产,这就是为什么你有一个占位符。在3.1.1中,非摘要版本也会被编译,因此您的配置会有效,但最佳做法是使用摘要。
assets pipeline guide的最后一部分列出了默认操作的正确配置选项。