我剛剛將Heroku中的應用從Rails 3.0升級到3.1,並試圖使資產管道工作。主要的問題是,我可以閱讀從Heroku的日誌中的以下樣線,對每一項資產:在Heroku上更新到Rails 3.1時的資產管道
2011-09-03T16:35:28+00:00 app[web.1]: cache: [GET /assets/border-a3c571a354b9381740db48aeebfaa63a.jpg] miss
如果我理解正確的管道,這不應該是「小姐」爲每個請求,我從一個做瀏覽器,但它應該在緩存中找到。
閱讀Heroku的文檔,你可以找到這樣的解釋:
Rails 3.1 provides an assets:precompile rake task to allow the compilation penalty to be paid up front rather than each time the asset is requested. If this task exists in your app we will execute it when you push new code.
但是應該怎樣說,「資產:預編譯」的任務是什麼?我試圖用rails 3.1從頭開始構建一個項目來試圖找出問題,但在裸露的項目中沒有這樣的任務。或者我錯過了什麼?我怎麼能讓這些資產在緩存中找到?也許只是配置問題。
這些都是我的生產配置文件的選項:
config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = true # If I turn this off I get a 500 error and logs say that an asset isn't compiled
我的application.rb中有這樣一行:
config.assets.enabled = true
非常感謝您的幫助!
我直接編譯在Heroku上的資產,不會產生污染我的本地庫與compliled資產。 使用命令:heroku運行rake資產:預編譯 –