我有一个相当大的项目,为了减少包大小,我决定将它分成多个具有延迟加载的模块。这是我的应用程序路由
const routes: Routes = [
{
path: 'profile',
loadChildren: () => import('./pages/public/freelancer-profile/freelancer-profile.module').then(m => m.FreelancerProfileModule)
},
{
canActivate: [LoginGuardService],
path: 'panel',
loadChildren: () => import('./pages/private/private.module').then(m => m.PrivateModule)
},
{
path: '',
loadChildren: () => import('./pages/public/public.module').then(m => m.PublicModule)
},
{
path: '',
loadChildren: () => import('./pages/landing/landing.module').then(m => m.LandingModule)
},
{
path: '',
loadChildren: () => import('./pages/public/logging/logging.module').then(m => m.LoggingModule)
},
{
path: '**',
redirectTo: '404',
}
];
我希望仅当页面路径在其模块中时才加载landing.module,但会发生以下情况:如果页面路径在 logging.module 上,则 public.module 和landing.module 块也正在下载。我怎样才能解决这个问题 ?我在想是否有一种方法可以检查 URL 并仅在 URL 与模块中的路径之一匹配时才下载模块
注意:我无法更改 url 并添加前缀以避免这种情况,因为页面是通过搜索引擎索引的。