关于vue-router懒加载发版后js报404的问题

在Vue项目中使用vue-router进行懒加载时,遇到发版后由于js文件版本变化导致404的问题。本地测试正常,但在测试或生产环境中,已打开的页面可继续访问,新增页面则因js文件请求失败而无法打开。解决方案是在报错时将地址存储在localStorage,然后刷新页面,并在router.beforeEach中检查并跳转到正确地址。对于带参数的URL,也需处理保存和恢复参数的方法。
摘要由CSDN通过智能技术生成

最近的项目是基于vue-element-admin创建的,里边涉及到路由懒加载,如

  {
   
    path: '/login',
    name: 'login',
    component: () => import('@/views/login/index'),
    hidden: true
  }

在使用过程中发现,本地测试时没问题,但当打包上测试或者发生产时,如果用户原本就是开着这个网站的,那么之前打开过的页面可以继续打开,而新页面点完链接就不动了,页面路由也不会变,打开控制台发现是依赖的js文件报404了。
原因是发版后js文件的版本号发生了变化,服务器上原来的静态资源已经全部被替换,而客户端本地是没有办法自动去更新html文件的,请求的依然是原来的文件,造成页面卡死不动了。
刚开始想在全局路由守卫 router.beforeEach 中监控报错,结果发现一直到 next 为止都不会报错,得找下载js文件的地方去捕获错误,在网上找了找发现了如下方案:

  {
   
    path: '/login',
    name: 'login',
    component: (
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值