2013-10-07 65 views
11

我正在研究一個不會縮減生產中的CSS或JS的項目。Rails沒有縮小

不幸的是,我從來沒有遇到過這個問題,並且我不太瞭解資產管道如何詳細工作以調試問題。

我的問題是,我需要檢查以確保啓用的主要要點/設置是什麼?

它正確地將不同的文件組合成一個單一的JS和CSS文件......它只是沒有縮小。

到目前爲止,我已經添加到config.assets.js_compressor = :uglifierproduction.rb,並uglifierGemfile,但仍然沒有骰子。

我使用Rails中升級2

回答

33

這個答案適用於軌道4,5

當rails-4不會縮小資產的原因之一是RAILS_ENV未設置爲生產時。

這通常發生在你預編譯的資產和PROD模式下使用運行的WEBrick:
rails s -e 'production'
但仍造成application.css和application.js中被連接,但不精縮

爲了解決這個問題,使用以下方法來指定ENV而預編譯的資產:

$ RAILS_ENV =產品包的exec耙資產:預編譯

此外,如果你是從軌道3升級到請注意,production.rb中的config.assets.compress = true指令不再適用於rails 4.您需要在您的config/environments/production.rb文件中添加以下指令,以便縮小js和css文件:

# Compress JavaScripts and CSS. 
    config.assets.js_compressor = :uglifier # make sure the 'uglifier' gem is included before adding this line 
    config.assets.css_compressor = :sass # if you are using the sass-rails gem, this line is unnecessary 
+3

請注意,如果您使用'sass-rails',則無需指定'config.assets.css_compressor',因爲文檔狀態(http://guides.rubyonrails.org/asset_pipeline.html#what-is-the- asset-pipeline-questionmark) – mdemolin

+0

另請注意,運行資源:第二次預編譯將不會執行任何操作,除非原始文件已更改。在彈回服務器之前,您不會看到生產中的更改。 –

0

你怎麼知道這不是涅槃一個Rails 3.2.12?您是否運行過

rake assets:precompile 

還是您使用capistrano進行部署?如果您使用Capistrano的部署確保添加在deploy.rb頂部此行

load 'deploy/assets' 

否則請發表你承擔越來越步驟它的工作