2014-01-13 57 views
0

最近在Heroku上從3.2升級到Rails 4.0.2。我注意到,也許每隔推我stylesheet_link_tagjavascript_include_tag標籤指向我的發展路徑(即/assets/admin.css),而不是我的生產/預編譯@按手印路徑如/assets/admin-a334a2cf57ed6ffc29f7f7a1af35f380.css不一致的資產預編譯Rails 4和Heroku

,這裏是來自production.rb相關設置:

# Don't fallback to assets pipeline if a precompiled asset is missed 
config.assets.compile = false 

# Generate digests for assets URLs 
config.assets.digest = true 

因爲我在Heroku我有config.assets.initialize_on_precompile = falseapplication.rb。因此,如果我對資產文件進行了任何更改,則在部署前我總是運行bundle exec rake assets:precompile

這裏是我的文件夾層次:

app 
-assets 
    -images 
    -javascripts 
    -stylesheets 
    -themes 
     dark.css 
     blue.css 
     etc... 
    admin.css 
    application.css 
    jobboard.css 

這裏是我的application.config

config.assets.precompile += [ 
    'admin.css', 
    'admin.js', 
    'jobboard.js', 
    'jobboard.css', 
    'themes/dark.css', 
    'themes/blue.css', 
    'themes/green.css', 
    'themes/plain.css', 
    'themes/seafoam-flat.css', 
    'themes/fire-flat.css' 
    ] 

但出於某種原因,我得到這個金不一致的行爲。所有文件預編譯。但是有時候admin.css文件不會被引用到指紋中,對於/ themes下的css文件也是如此。任何線索爲什麼會發生這種情況?

+0

您可以重新編譯您的資產,以查看在此過程中是否有錯誤或丟失文件? –

回答

0

如果有丟失的預編譯的文件也許你應該在配置它們添加/ application.rb中

config.assets.precompile += %w(admin.css) 

然後

RAILS_ENV=production bundle exec rake assets:precompile 

您可以在清單(公開/資產)檢查缺失文件或查看指紋。

+0

謝謝。我已將所有文件列在config/application.rb中。沒有任何事情報告爲缺失。 – cman77

+0

謝謝。這個問題並不是真的缺少。正是在某個時候引用了正確的/預編譯的版本,並且有時會引用開發版本。當dev版本在生產中被引用時 - 它不在那裏,因此沒有呈現css。 – cman77

+0

它是一個隨機文件還是始終與涉及的相同? –