1、起因是公司做了一个后台管理系统(技术框架是Vue, UI库是使用Element ui) 这个系统已经有很多用户使用了。2、原先发布方式就是本地打包放到服务器上,但那天我想使用自动发布方式(公司开发的一套发布系统,发布方式时覆盖式发布,js版本号每次都会变),发完的第二天就出问题了,很多用户加载不到最新资源,导致左侧点不动(原因是我的左侧菜单路由采取懒加载模式,最新资源加载不到浏览器报错了),我只能让他们刷新,但有的用户浏览器缓存严重,就必须让ctrl + f5强制刷新才行。3、想问下其他的一些大公司的前端发布方式是如何避免系统正在发布时,用户他也正巧在使用中,这样情况的话得必须让他主动刷新这样问题的,谢谢~~ 。(现在想到的方案可以用CDN保存最近几次发布的版本,然后定时去除最旧资源)
2 回答
天涯尽头无女友
TA贡献1831条经验 获得超9个赞
这种问题的根源应该是系统的html页面被缓存了,html页面中请求的资源还是发布之前的资源,导致问题。
可以禁止浏览器缓存html页面信息。
<meta HTTP-EQUIV="pragma" CONTENT="no-cache">
<meta HTTP-EQUIV="Cache-Control" CONTENT="no-store, must-revalidate">
<meta HTTP-EQUIV="expires" CONTENT="0">
慕的地10843
TA贡献1785条经验 获得超8个赞
旧资源不删也行,不就点 JS、CSS,几乎没什么消耗
使用 HTTP header 控制全部资源的缓存,方案你可以找找看,很多介绍的文章。重点在于你要想办法采用同样地策略,不要有些过期了有些还在走缓存。
大体上,如果你的新版本对用户有帮助的话,他们会愿意配合你的刷新策略。更多的时候,后台都要保留各个版本的接口,不太会出现不兼容的情况。你可以定时读取版本信息,提示用户刷新。
添加回答
举报
0/150
提交
取消
