You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue Router 调用replace未替换完整路径导致404页面无法触发的问题求助

Vue Router 调用replace未替换完整路径导致404页面无法触发的问题求助

各位好,我最近在Vue Router里遇到了一个头疼的问题,想请大家帮忙看看怎么解决:

我配置了一个带参数的路由,用来展示报告页面:

{ 
  path: "/report/:reportid", 
  component: ReportPage, 
  name: "ReportPage", 
  props: true, 
  meta: { requiresAuth: true }
}

同时还有一个兜底的404路由,用正则来匹配所有未定义的路径:

{ 
  path: "/:notFound(.*)", 
  name: "notFound", 
  component: NotFoundPage 
}

场景是这样的:当我故意输入/report/1622222这种不存在的报告ID时,后端会返回HTTP 404状态码。我在响应处理逻辑里写了跳转代码,想直接跳转到404页面:

else if (response.status == 404) { 
  router.replace("notFound"); 
  return; 
}

结果发现,调用这个replace之后,路径变成了/report/notFound,而不是我预期的/notFound!这样就触发不了兜底路由的正则规则,我的NotFoundPage根本渲染不出来。

我用的是Vue Router 4.4.3版本,有没有朋友知道这种情况该怎么处理,才能让我正确跳转到根路径下的404页面呢?麻烦大家了!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 14:29:30