- 當單頁面的系統在重新部署更新時,此時正在瀏覽網頁,並且已經在網頁內的用戶,始終會使用老的js與css文件,一直在使用已經緩存了的靜態資源。
所有的緩存問題焦點都在index.html上,只要index.html刷新即可重新獲取代碼。
出處:https://www.cnblogs.com/mamimi/p/9179244.html
想到的一個較好的解決方案:
- webpack打包時,設置一個唯一的打包字符串(比如:當前時間戳),存到一個文件里(最好是json文件,此文件不緩存);
- 將打包字符串存在 localStorage 中;
- 進入每個路由時,比較 localStorage 中的打包字符串與文件中新的打包字符串是否一致。不一致的話,刷新頁面。
- 將新的打包字符串,存入 localStorage。
該方案詳細實現:https://segmentfault.com/a/1190000017918361
-
待研究方案:
Nginx 配置不緩存單頁面應用的 index.html。 -
其他相關文章:
https://segmentfault.com/q/1010000006166458
https://www.zhihu.com/question/263969779
