关于webapp构建出不同的文件名导致访问失败的问题

每次使用npm run build构建出的js文件,如果内容发生了变更会生成不同的hash,考虑如下情况,用户正在访问,我们执行了npm run build,其中有些文件hash值发生了变化,这时用户在webapp切换路由时,如果刚好切换到了一个hash发生了变化的js文件,旧的文件名对于的js文件已经不存在了,就会导致路由切换失败,这种情况大家是怎么处理的?

方式1:npm run build时保留旧的js文件
方式2:发生加载失败时,提供刷新按钮,reload页面,迫使webapp重新加载新的js文件

除了以上还有更好的处理方式吗?

阅读 1.3k
1 个回答
  1. 保留旧的js,hash用内容做,保证只有内容变了才改变hash。保留几个月,再统一清空。
  2. 同步的程序,修改同步步骤。先把所有代码都同步上去。然后再删除旧的代码。最后再同步html。(涉及到资源换路径)
  3. 基于上一点,实现不换路径。比如说先找到所有要删除的。然后同步新的,做过滤,然后删除旧的。
  4. 其他方案,比如多做几台机器,先在上面都发布完成,然后nginx指到已经发布完成的机子。然后在其他下线的机子上发布。最后nginx再切回来。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题