我已經構建了一個基本上基於指令的AngularJS HTML5應用程序。每個指令將使用templateUrl
語法從另一個文件加載它的模板。瀏覽器緩存的部分
應用程序是一個單頁的應用程序,讓我們假裝它通過http://prod/index.html
的訪問,並且加載該頁面時,指令將然後加載http://prod/partials/directive-a.html
我有問題推出的新版本中,當該網站到我的生產環境。瀏覽器繼續使用先前版本的緩存資產。
例如,如果我定位到http://prod
,所有的資產從以前的版本中。如果我強制刷新頁面(CTRL+F5
),index.html頁面將從服務器重新加載並反映任何更改。
這是的不是導致瀏覽器刷新partials/directive-a.html
。因此,新的index.html
頁面仍顯示舊的directive-a.html
。
如果我在瀏覽器地址欄中導航到完整的部分HTML文件(partials/directive-a.html
),則向我顯示舊版本的部分文件。通過硬刷新部分頁面,將顯示該部分的正確(新)版本,並且當index.html
上的指令被重新加載時也被更新。
我有什麼機制可以阻止部分緩存嗎?
我見過關於追加時間戳到查詢參數的評論,但這似乎過於笨重,把我所有的指令和路線。
我認爲通過在應用程序配置中添加無緩存頭,通過平臺軟件服務器端的構建方式來禁用緩存? 。 –
@PankajParkar當然可能,HTML服務器正在通過Apache httpd銷售。這顯然會影響性能(特別是在移動設備上),但我可能能夠忍受這一點...... – jwa
是的..這可能會影響移動設備的性能。但我認爲這可能有助於http://stackoverflow.com/a/11724596/2435473 –