爲了在我的heroku生產環境中調試javascript,我需要禁用資產壓縮(或至少壓縮javascript)。我嘗試了config.assets.compress = false
以及config.assets.debug = true
,並且壓縮資產仍在使用。然後我刪除了壓縮資產,此時根本沒有任何資產被呈現。我加了config.assets.enabled = false
,這沒有幫助。我嘗試將未壓縮的資源複製到各種目錄中,包括應用程序根目錄,公共資源和公共資源(後兩個使用文件夾「images」,「javascripts」和「stylesheets」),並將資源直接放入文件夾中這三個子文件夾)我最終能夠通過更改html來直接引用所有的javascript文件,但CSS和圖像仍然不起作用。任何想法,我做錯了什麼?在Rails生產中禁用資產縮減
回答
我讀the docs後此變通辦法想出了:
創建一個模塊,無助於壓縮JS/CSS這裏:lib/modules/no_compression.rb
class NoCompression
def compress(string)
# do nothing
string
end
end
配置你的資產(不)與被壓縮的無操作壓縮機
config.assets.compress = true
config.assets.js_compressor = NoCompression.new
config.assets.css_compressor = NoCompression.new
看起來像這可能是一個在Rails中的錯誤從即將推出的rails 3.2.9的更新日誌,這是你正在運行?
尊重config.digest = false爲asset_path
此前,asset_path內部只有尊重:消化選項,而忽視了全局配置設置。這意味着config.digest = false不能與config.compile = false一起使用,這會糾正行爲。
http://weblog.rubyonrails.org/2012/10/29/ann-rails-3-2-9-rc1-has-been-released/
你認爲這可能是有關?
我不認爲這兩者是相關的,因爲我認爲這種變化與是否將資產名稱添加到摘要中有關,而我的問題與JavaScript壓縮有關。我猜可能存在與config.asset.compression相同的問題,並且他們還沒有找到它。無論如何,謝謝你的支持。 – 2012-11-06 00:23:08
另外值得注意的是...除了ncherro解決方案,您將需要做的以下內容:
- 確保將您的新模塊放置在默認情況下會加載的位置。在我的情況下是lib/extras。
- 運行
rake assets:clean
清理您的現有資產。 - 運行
rake assets:precompile
使用新壓縮機編譯您的資產。 - 重新啓動您的應用程序...我使用
touch tmp/restart.txt
快樂調試;)
我還需要調試JS我,所以我試圖ncherro的解決方案。問題是它仍然會丟棄
rake中止! 未初始化的常量NoCompression
所以我只是把NoCompression類的production.rb文件
# Compress JavaScripts and CSS
class NoCompression
def compress(string)
# do nothing
string
end
end
config.assets.compress = true
config.assets.js_compressor = NoCompression.new
config.assets.css_compressor = NoCompression.new
在軌道4只註釋掉行
# config.assets.js_compressor = :uglifier
在config/environments/production.rb
爲我工作。看起來默認是不壓縮。
註釋掉uglifier並添加config.assets.debug = true
。這對我有效。
壓縮JavaScript和CSS:
config.assets.js_compressor = :uglifier
調試模式禁用級聯和資產的預處理。但是,此選項可能會導致在視圖呈現顯著延遲了大量複雜的資產:
config.assets.debug = true
隨着在Heroku上的Rails 4,你需要做兩件事情。首先作爲@geekQ提到,註釋掉js_compressor線config/environments/production.rb
# config.assets.js_compressor = :uglifier
其次,你需要考慮Heroku's asset pipeline cache for Rails 4.與作爲高速緩存的版本將不會被重新編譯相同的MD5的任何文件。以前的(可能是壓縮的)版本將被提供。您編輯的任何文件都將有一個新的MD5並被重新編譯。
您也可以使用清除整個資產緩存到Heroku工具欄。安裝它,然後使用命令
heroku repo:purge_cache
在清除緩存後部署新版本,並重新編譯所有資產。
刪除'config.assets.js_compressor =:uglifier'就足以解決它 – Dorian 2017-12-20 19:01:51
我不得不更新Rails.application.config.assets.version
在config/initializers/assets.rb
爲production.rb
更改生效。
查找和註釋掉environments/production.rb
這些行:
config.assets.js_compressor = ...
config.assets.css_compressor = ...
- 1. Rails的資產在生產
- 2. 禁用生產中的資產捆綁,Rails 3.1?
- 3. 我的Rails 5資產都沒有在生產中縮小
- 4. 在Android Studio中禁用資產壓縮
- 5. Rails 3.2生產中的資產
- 6. 縮減大小Extjs4生產
- 7. Rails 4生產資產沒有加載
- 8. Rails:生產資產:預編譯錯誤
- 9. Rails 3服務於生產資產
- 10. Rails的生產預編譯資產
- 11. AAR Android Library - 禁用資產壓縮
- 12. 資產 - 如何禁用資產組合?
- 13. Rails資產管道在生產環境中不起作用?
- 14. 未在生產中使用消化資產的Rails
- 15. Rails 4.1.6資產管道沒有在生產中加載資產和javascript
- 16. 如何在rails中禁用某些資產的默認資產時間戳?
- 17. Rails的資產不是在生產中編譯
- 18. Rails 3.2.10未在生產中預編譯的資產
- 19. Rails 3.1資產在生產中沒有指紋
- 20. Rails 4:資產未在生產中加載
- 21. Rails的資產,CSS,JavaScript都在生產模式中打破?
- 22. Rails 3.1資產在ActiveAdmin的生產中沒有正確加載
- 23. 如何在生產中加載資產,Rails 4?
- 24. rails 4資產在生產中不能正常工作
- 25. 在開發和生產中配置Rails資產管道
- 26. Rails資產已預編譯,但生產環境正在尋找它們/資產
- 27. 如何禁用rails上的資產生成器3.2
- 28. 錯誤配置的資產在軌壓縮生產
- 29. 當laravel環境正在生產時,gulp將資產縮小
- 30. Rails 3.1資產管道並未縮小
你是絕對修改'配置/環境/ production.rb'? – 2012-03-13 16:24:11
您是否使用Rails標籤助手來訪問資產(javascript_include_tag'script.js')?你能關注一個單獨的文件,給我們一個例子,說明它是如何實現的以及發生了什麼? – mltsy 2012-10-30 17:23:45