2017-05-24 71 views
1

在我的angularjs應用程序中我使用gulp轉換爲所有js和所有css文件的自動更改版本。但每次將我的代碼的新版本拉到生產後,我的客戶端在加載網頁時都會獲得一些新的和一些舊數據。 在網絡控制檯中,正確加載了新版本的腳本和css,但有些數據是舊數據。對於新數據,我們需要重置瀏覽器。Angularjs - 如何強制加載新代碼

有什麼辦法可以強制瀏覽器加載所有新數據?日Thnx

+0

你對setTimeIntervel()的看法? –

+0

你能舉個例子嗎?在哪裏設置時間間隔?在index.html?因爲所有的腳本和css都有新的版本號......:/ – Arter

回答

1

,最好的辦法是把一個查詢字符串在你的腳本和CSS標籤,就像這樣:

<link rel="stylesheet" type="text/css" href="/css-min/style.min.css?v=3" media="all"> 

<script src="/someScript.js?v=4"></script> 

但在每一個版本的變化,你需要更新的「V」值。

+0

或者讓像webpack這樣的構建工具創建帶有哈希名稱的腳本文件,這樣客戶端每次腳本發生變化時總能看到新的文件名。如果您不使用webpack,則也可以使用時間戳而不是增量版本號。 –

+0

@david我已經在使用這個,但隨着gulp轉速...每次當我開始吞噬任務轉速,我得到像這個腳本 - aa46498.js新的版本號,並在下一個轉折,動態吞食更改版本腳本-f79g55。 js。但是在這種方式下,在向生產添加新代碼之後,我仍然會在第一次加載時獲得舊數據。 StephanKöninger我會嘗試帶時間戳 – Arter