请教一下,前端发布版本,用户会白屏

讨论 未结 15 53
neptuno
neptuno 2022年7月17日 02:27 发表
收藏(0)  分享
相关标签: 灌水交流
注意:本文归作者所有,未经作者允许,不得转载
15个回复
  • wukongkong
    2022年7月17日 02:27
    打包出来文件没有 hash 值,导致访问了本地文件?
    0 0
  • think2011
    2022年7月17日 02:27
    目测是原先的文件被删除了,导致请求不到。 简单的做法是不要删除的旧的 hash 文件就好,这样用户在刷新前依然可以用旧版本
    0 0
  • neptuno
    neptuno (楼主)
    2022年7月17日 02:27
    谢谢,我们先尝试下不删除文件
    0 0
  • neptuno
    neptuno (楼主)
    2022年7月17日 02:27
    不缓存的话,我们没加 cdn ,加载比较慢
    0 0
  • learningman
    2022年7月17日 02:27
    用 serviceworker ,检测到版本更新后台下载,下载完了弹个框提示用户刷新一下
    0 0
  • wunonglin
    2022年7月17日 02:58
    #5 index.html 没多大,再加上你缓存的话那就不要把原来的文件给删了。
    0 0
  • neptuno
    neptuno (楼主)
    2022年7月17日 03:29
    #6 谢谢,这个我待会儿研究下
    0 0
  • GreatAuk
    2022年7月17日 03:57
    哈哈,试下我写的插件? 。 这两天看下再加个 webpack 插件支持
    0 0
  • GreatAuk
    2022年7月17日 03:57
    加 pwa 支持有成本的,而且如果不熟悉就上,很简易整成强缓存 ,用户刷新都不生效。
    0 0
  • dusu
    2022年7月17日 04:27
    写个固定路径的版本 js 前端路由切换前查询一次或者直接轮询 和当前版本不一致就直接刷新页面
    0 0
  • gzyguy
    2022年7月17日 04:58
    现在前端构建出来的静态资源一般默认都带上 hash 吧?是不是因为用户在升级后页面资源还停留在历史版本上导致的 ?
    0 0
  • zhouyg
    2022年7月17日 06:27
    大概率旧资源被删除了或同名文件,因为 code splitting 和 懒加载,用户可能已经先 load 了 旧 chunk1 ,点击跳转的时候应该跳转的旧 chunk2 。如果发布后旧资源被清理,就会导致加载不到 chunk2 或者 加载到的是新 chunk2 。可以在构建时在资源路径加上 版本标识,同时保留历史版本
    0 0
  • zhzy0077
    2022年7月17日 06:27
    我们也是通过版本号来发布切流的. SPA 的话一般在主入口去查版本号就行了, 已经在浏览的用户就继续用旧版直到刷新也没问题. 不过我们的版本号不是后端控制的, 后端没做 CDN 或者 CDN 做的不好的话很容易影响首屏, 我们一般就前端 CDN 或者 OSS 上放一个文件, 直接改文件, 前端去拿出来就行了
    0 0
  • otakustay
    2022年7月17日 07:30
    仅解决前端问题的话,发布的时候别把上次的东西删了就好了
    0 0