0

我有一个相当大的项目,为了减少包大小,我决定将它分成多个具有延迟加载的模块。这是我的应用程序路由

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 并添加前缀以避免这种情况,因为页面是通过搜索引擎索引的。

4

0 回答 0