From fca82e2d44d654419628df92227ba4d6e7991509 Mon Sep 17 00:00:00 2001 From: yuliang_guo Date: Tue, 3 Feb 2026 13:42:42 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E8=B7=AF=E7=94=B1?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E5=A4=B1=E8=B4=A5=E7=9A=84=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 检测chunk加载失败(部署后旧文件被清理) - 自动刷新页面加载最新资源 - 改进错误提示,告知用户正在刷新 Co-authored-by: Cursor --- frontend/src/router/guard.ts | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) 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('页面加载失败,请刷新重试') + } }) }