我在Rails中開始一個新項目,它看起來像application.js清單文件正在做一些有趣的事情,我引用了javascripts - 是否緩存這些文件作爲資產管道?清除Rails資產管道中的緩存
這是發生了什麼事。我添加了一個名爲jquery.autoresize.js給供應商/資產/ JavaScript的文件夾中的JavaScript文件,然後引用清單中像這樣的application.js文件:
//= require jquery.autoresize.js
然後,我開始了在軌服務器。但是在瀏覽我的應用程序後,我意識到我不小心添加了錯誤版本的jquery.autoresize.js文件。所以,我刪除了該文件,然後將正確的版本添加到vendor/assets/javascripts文件夾。但是,令我驚恐的是,當我重新加載頁面時,它仍在加載舊的JavaScript文件。
我試圖清空我的瀏覽器緩存,然後退出並重新啓動Rails服務器,但無濟於事。我通過簡單地重命名我的JavaScript文件並引用新名稱,這很好地解決了一個解決方案。但是這必須有更好的解決方案。
新資產管道緩存了您引用的文件嗎?如果是這樣,我該如何清除緩存?謝謝你的幫助!
啊,非常有趣,謝謝你的想法。我實際上是在我的本地開發環境中執行此操作,並且我從不運行rake資源:預編譯。那麼,也許這使得它的行爲有所不同?你認爲開發環境會使它的行爲與我原先描述的一樣嗎? – 2012-09-06 04:03:47
在開發環境中,不使用哈希文件名,因此所有內容都基於文件修改日期。 (在瀏覽器中查看源代碼以查看HTML標頭中的腳本鏈接。)我的猜測是,在開發環境中,替換文件具有較早的修改日期,因此瀏覽器僅使用其緩存版本。你的編輯更新了文件的mod時間,這就是瀏覽器最終獲取新版本的原因。 – benzado 2012-09-06 18:10:10
太棒了。感謝您幫助我弄清楚這一點。我會修改問題的內容,以更好地解釋問題併爲您提供幫助。 – 2012-09-06 19:02:35