客户端浏览器缓存未更新

Blade 未结 2 3690
杜波
杜波 2021-01-26 10:44

更新前端页面后,客户端浏览器未更新,必须ctrl+F5才能显示最新的,该情况能否不需要客户手动操作啊?


对于生产环境确实不适用,如果通过加版本号操作是否会方便呢?

目前静态资源还做了cdn的,但是客户端不刷新不是cdn造成的。



麻烦提供下解决思路,是代码变动?还是nginx变动还是哪里变动

2条回答
  •  珠海信通-研发
    2021-01-26 10:57

    这里分享一下我们公司目前研究的解决方案。

    1. 在前端(我们是sword)。配置文件里设置hash:true

        这样就会打上JS版本号,CSS版本号。

    2. 并且在global.js把那个右上角提示手动刷新的提示(估计是antd pro自带的)改成强制自动刷新。(因为用户很可能会忽略无视掉这个弹框提示,导致页面一直不刷新)

    3. 并在nginx和document.ejs设置不缓存index.html,和serviceWorker.js(这个是一种叫pwa的技术,导致了页面一直有离线缓存)。

        不缓存index.html是因为umi打版本号只是打给了js和css,而页面进入读取的还是同一份index.html,他没有版本号,而css和js是通过index.html里面读取其版本号出来,然后进行加载的。


    仅供参考

提交回复