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

Angular路由失效求助:访问/test路径出现404错误

排查Angular路由/test失效的常见问题

嘿,我遇到过几乎一模一样的问题!咱们一步步排查,大概率是这几个配置环节出了疏漏:

1. 检查路由规则的顺序与配置

这是最常见的坑!首先打开你的路由配置文件(比如app-routing.module.ts),确认:

  • TestComponent已经被正确导入
  • /test的路由规则在通配符路由(path: '**')之前
  • 路由规则的写法没有错误:
const routes: Routes = [
  // 其他正常工作的路由
  { path: 'test', component: TestComponent },
  { path: '404', component: NotFoundComponent },
  // 通配符路由必须放在最后,否则会匹配所有未定义路径跳404
  { path: '**', redirectTo: '404' }
];

如果通配符路由在/test前面,不管你输入什么路径都会先跳转到404,这就会导致/test无法访问。

2. 确认路由模块的导入与导出

确保你的路由模块已经正确集成到应用中:

  • 在根模块(app.module.ts)的imports数组里导入了路由模块(比如AppRoutingModule)
  • 路由模块中正确导出了RouterModule,这样组件才能使用路由相关指令:
@NgModule({
  imports: [RouterModule.forRoot(routes)], // 根路由用forRoot,特性模块用forChild
  exports: [RouterModule]
})
export class AppRoutingModule { }

3. 验证组件的模块归属

虽然VS Code能跳转文件,但还是要确认TestComponent已经在对应的模块中声明:

  • 如果是根组件,检查app.module.ts的declarations数组里有没有TestComponent
  • 如果是特性模块中的组件,确认该特性模块已经被导入到根模块,且组件在特性模块的declarations中

4. 排除浏览器缓存或开发服务器缓存问题

有时候旧的路由规则会被缓存,试试:

  • 强制刷新浏览器(Ctrl+Shift+R)
  • 重启Angular CLI开发服务器(停止ng serve后重新启动)

5. 检查路由路径的大小写与拼写

Angular路由默认区分大小写,确认你访问的/test和路由配置中的path: 'test'完全一致,没有拼写错误(比如多了空格、字母大小写不对)

6. 验证HTML5模式的服务器配置(可选)

如果你的应用用了HTML5路由模式(默认开启),手动输入路径或刷新时,Angular CLI开发服务器可能无法正确处理请求。可以临时切换到Hash模式验证:

RouterModule.forRoot(routes, { useHash: true })

然后访问localhost:8808/#/test,如果能正常访问,那后续需要配置服务器支持HTML5模式,但开发环境下一般Angular CLI会处理,所以这个可能性相对小。

你可以先从路由规则的顺序开始排查,我当时就是不小心把通配符路由放在了前面,折腾了好半天!

内容的提问来源于stack exchange,提问作者Lpold

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:34:07