单页面应用(SPA)重新部署后,正在浏览的页面如何更新缓存?
- 当单页面的系统在重新部署更新时,此时正在浏览网页,并且已经在网页内的用户,始终会使用老的js与css文件,一直在使用已经缓存了的静态资源。
所有的缓存问题焦点都在index.html上,只要index.html刷新即可重新获取代码。
出处:https://www.cnblogs.com/mamimi/p/9179244.html
想到的一个较好的解决方案:
- webpack打包时,设置一个唯一的打包字符串(比如:当前时间戳),存到一个文件里(最好是json文件,此文件不缓存);
- 将打包字符串存在 localStorage 中;
- 进入每个路由时,比较 localStorage 中的打包字符串与文件中新的打包字符串是否一致。不一致的话,刷新页面。
- 将新的打包字符串,存入 localStorage。
待研究方案:
Nginx 配置不缓存单页面应用的 index.html。
其他相关文章:
https://segmentfault.com/q/1010000006166458
https://www.zhihu.com/question/263969779
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步