fix: 优化路由加载失败的错误处理
All checks were successful
continuous-integration/drone/push Build is passing

- 检测chunk加载失败(部署后旧文件被清理)
- 自动刷新页面加载最新资源
- 改进错误提示,告知用户正在刷新

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
yuliang_guo
2026-02-03 13:42:42 +08:00
parent 99ded54616
commit fca82e2d44

View File

@@ -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('页面加载失败,请刷新重试')
}
}) })
} }