rails 3.1.0:指纹未在生产中加载的图像

时间:2011-10-17 14:31:14

标签: ruby-on-rails-3.1 asset-pipeline

我的问题:在生产模式下启动应用程序时,未正确加载所有图像。 我只看到图像的占位符。当我复制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文件)都带有指纹。

在开发模式下一切正常。我无法弄清楚为什么没有正确使用图像。

1 个答案:

答案 0 :(得分:1)

我看到了问题。您在生产配置中缺少这些行:

config.assets.digest = true
config.assets.compile = false

第一种方法是在助手的输出中添加摘要。

第二个告诉rails不要将任何资产请求交还给Sprockets,而是假设它们是预编译的(这就是你想要的)。

在Rails 3.1.0中,只有预先编译了已消化的资产,这就是为什么你有一个占位符。在3.1.1中,非摘要版本也会被编译,因此您的配置会有效,但最佳做法是使用摘要。

assets pipeline guide的最后一部分列出了默认操作的正确配置选项。