- 检测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) => {
|
||||
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('页面加载失败,请刷新重试')
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user