- 检测chunk加载失败(部署后旧文件被清理) - 自动刷新页面加载最新资源 - 改进错误提示,告知用户正在刷新 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -55,11 +55,31 @@ export function setupRouterGuard(router: Router) {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
// 路由错误处理
|
// 路由错误处理 - 处理懒加载组件失败
|
||||||
router.onError((error) => {
|
router.onError((error) => {
|
||||||
console.error('Router error:', error)
|
console.error('Router error:', error)
|
||||||
ElMessage.error('路由加载失败')
|
|
||||||
loadingManager.stop('page-loading')
|
loadingManager.stop('page-loading')
|
||||||
|
|
||||||
|
// 检测是否是chunk加载失败(通常是部署后旧文件被清理)
|
||||||
|
const isChunkLoadError =
|
||||||
|
error.message?.includes('Loading chunk') ||
|
||||||
|
error.message?.includes('Failed to fetch') ||
|
||||||
|
error.message?.includes('dynamically imported module') ||
|
||||||
|
error.name === 'ChunkLoadError'
|
||||||
|
|
||||||
|
if (isChunkLoadError) {
|
||||||
|
ElMessage({
|
||||||
|
type: 'warning',
|
||||||
|
message: '页面资源已更新,正在刷新...',
|
||||||
|
duration: 2000
|
||||||
|
})
|
||||||
|
// 延迟刷新页面以加载最新资源
|
||||||
|
setTimeout(() => {
|
||||||
|
window.location.reload()
|
||||||
|
}, 1000)
|
||||||
|
} else {
|
||||||
|
ElMessage.error('页面加载失败,请刷新重试')
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user