2011-10-17 24 views
1

我的問題:以生產模式啓動我的應用程序時,所有圖像加載不正確。 我只看到圖片的佔位符。當我複製圖像url時,我得到「assets/mylogo.png」。我想念指紋。rails 3.1.0:生產中未加載指紋的圖像

我的配置:

寶石:

rails 3.1.0 
compass, :git => 'git://github.com/chriseppstein/compass.git' 
sprockets 2.0.2 

的config/application.rb中:

config.assets.enabled = true 

配置/環境/ 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

你用什麼服務器進行生產? – Bohdan

+0

你如何(以及在​​哪裏)引用這些文件? –

+0

@Bohdan:我在debian 6上使用nginx與乘客。 – Sebastian

回答

1

我看到了問題。您在生產配置中缺少這些行:

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

第一次打開在幫助程序的輸出中添加摘要。

第二個告訴導軌不要將任何資產請求交給Sprockets,而是假定它們是預編譯的(這是你想要的)。

在Rails 3.1.0中,只有消化資源被預編譯,這就是爲什麼你有一個佔位符。在3.1.1中,非消化版本也被編譯,所以你的配置可以起作用,但最好的做法是使用摘要。

assets pipeline guide的最後一部分列出了用於默認操作的正確配置選項。

+1

的圖像我已更新到rails 3.1.1並將這些行添加到生產配置中。似乎工作 – Sebastian

相關問題