diff --git a/frontend/src/router/guard.ts b/frontend/src/router/guard.ts index 4f8de50..dc60ee6 100644 --- a/frontend/src/router/guard.ts +++ b/frontend/src/router/guard.ts @@ -55,11 +55,31 @@ export function setupRouterGuard(router: Router) { } }) - // 路由错误处理 + // 路由错误处理 - 处理懒加载组件失败 router.onError((error) => { console.error('Router error:', error) - ElMessage.error('路由加载失败') 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('页面加载失败,请刷新重试') + } }) }