簡而言之,問題在於,在開發模式下,我們會對CSS或JS文件進行更改,但始終會獲取這些文件的緩存/舊版本。我做的沒有任何影響。我檢查了幾十次配置,嘗試了每個配置值的組合,但始終保持相同的結果:過時/緩存的文件。我必須實際運行在生產模式下,並在每次更改測試後重新啓動服務器。Rails 3.1.1資產管道Heroku緩存gotcha
我花了幾天的時間在這個問題上扯掉了我的頭髮,看了幾十個有關資產管道的stackoverflow問題,但從來沒有找到一個解決它的問題,所以我想我會把它發佈在這裏作爲後代。
我們使用Heroku並預編譯我們的資產,因爲Heroku無法爲我們預編譯(我們也使用devise,這顯然是heroku預編譯失敗的原因)。所以爲了將我們的預編譯資源提升到Heroku,我們必須檢查它們是否爲git。
這是問題。
當我們升級到Rails 3.1.1資產預編譯生成的文件都帶有和沒有名稱中的MD5散列。我沒有想太多,然後繼續檢查所有這些文件,以便推送到heroku。有一段時間後,我注意到在開發模式下緩存結果的問題。沒有MD5哈希的預編譯和簽入資產是從/ public/assets作爲靜態文件提供的,這使得我們無法看到我們在/ app/assets中做出的任何更改。
在終於意識到這一點之後,我運行了git rm/public/assets並且一切都重新運行。所以外賣是:請小心檢查資產到GIT!
把這個問題變成一個問題:其他人如何做到這一點?我錯過了明顯的東西嗎?我真的很喜歡Heroku爲我預編譯我的資產,但是由於設計原因我收集的db連接錯誤失敗了。我曾希望Rails 3.1.1解決了這個問題,但事實並非如此。
Dty,在發佈這個問題之前,我已經嘗試過這個確切的配置,但當時它對我沒有任何作用。不過,我只是試了一次,這次與Devise 1.4.9和羅,看到它的作品!感謝您的建議,讓我再次嘗試。 –
@ JeffCutler-Stamm很高興它解決了!我還在Heroku上託管一個Rails 3.1.1應用程序,但還沒有添加設計(但很快) – Dty
我會注意到你添加到config/application.rb –