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

Angular中routerLink无法导航至懒加载模块的问题排查

问题分析与解决

核心原因

你碰到的NG04002错误,本质是路由路径不匹配,具体有两个关键问题:

1. 懒加载模块的导入路径存在笔误

在app-routing.module.ts里,懒加载模块的导入语句:

const myModule = () => import('./my-routing/my-.module').then(x => x.MyRoutingModule);

这里的文件名my-.module明显写错了,应该是my-routing.module——这个错误会导致懒加载模块根本无法被正确加载,自然找不到里面定义的test路由。

2. 路由跳转路径不符合配置逻辑

你的懒加载模块挂载在根路由的experiment路径下,也就是说my-routing.module.ts里的test是子路由,完整路径应为/experiment/test。但你在test.component.html里写的是:

<a [routerLink]="['test']">

这种写法是跳转到根路径下的test,而根路由里根本没有这个配置,所以触发了路由匹配失败的错误。

修复步骤

步骤1:修正懒加载模块的导入路径

把app-routing.module.ts里的导入语句改成正确的文件名:

const myModule = () => import('./my-routing/my-routing.module').then(x => x.MyRoutingModule);

步骤2:修正路由跳转路径

有两种可行的修正方式:

方式一:使用绝对路径跳转

直接指定完整的路由路径:

<a [routerLink]="['/experiment/test']">
  <button type="button" class="btn btn-primary">Test</button>
</a>

方式二:使用相对路径跳转

如果TestComponent本身处于experiment路由的层级下,可以用相对路径(注意前缀的.):

<a [routerLink]="['./test']">
  <button type="button" class="btn btn-primary">Test</button>
</a>

额外优化建议

  • 根路由模块app-routing.module.ts里不需要导入ListComponent,它属于懒加载模块,导入后会破坏懒加载的效果,直接删除该行导入即可。
  • 确认懒加载模块的类名与文件名对应,确保my-routing.module.ts里的MyRoutingModule确实是该模块的导出类。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 05:11:20