最近的项目是基于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: (