繁体   English   中英

Angular 6延迟加载路线

[英]Angular 6 Lazy loading route

我想在项目中为管理员添加延迟加载的路由。 我正在使用ASP Net Core后端和Angular 6前端,因此我的编译代码输出目录是:wwwRoot / Angular / dist。 当我编译项目时,我看到文件“ admin-admin-module-ngfactory.js存在于其中,但是当我尝试输入页面'/ admin / dash'时,它抛出错误:

Failed to load resource: the server responded with a status of 404 (Not Found)
Error: Uncaught (in promise): Error: Loading chunk admin-admin-module-ngfactory failed.
(error: http://localhost:5000/admin-admin-module-ngfactory.js)
Error: Loading chunk admin-admin-module-ngfactory failed.
(error: http://localhost:5000/admin-admin-module-ngfactory.js)

这是我的路由模块:

管理员-routing.module.ts:

const routes: Routes = [ 
  { path: 'dash', component: AdminDashboardComponent, pathMatch: 'full'}
];


@NgModule({
  imports: [
    RouterModule.forChild(routes)
  ],
  exports: [RouterModule],
  declarations: []
})
export class AdminRoutingModule { }

和app-routing.module.ts:

const routes: Routes = [
  { path: 'dashboard', component: DashboardComponent },
  { path: 'error', component: ErrorComponent },
  { path: 'admin', loadChildren: './admin/admin.module#AdminModule' },
  { path: '', pathMatch: 'full', redirectTo: 'dashboard' },
];

@NgModule({
  imports: [ RouterModule.forRoot(routes) ],
  exports: [RouterModule]
})
export class AppRoutingModule { }

更新:

如果我使用dotnet run(使用ng build --aot)运行项目,则无法使用,但是如果我仅使用ng serve --aot启动Angular应用程序,则可以使用。

在.angular-cli.json文件中添加以下行。

"apps": [
{
  "deployUrl": "Angular-Build-Path/",

谢谢。

根据Angular的部署文档:

如果将文件复制到服务器子文件夹,请附加构建标记--base-href并进行适当设置。

因此,您应该在.angular-cli.json文件中使用--base-href参数。

(可选)您可以在没有-base-href配置的情况下(位于angular-cli-file中)在开发模式下工作,而仅在复制生产版本中进行设置。

ng build --base-href = /角度/距离/

参考文献:

https://angular.io/guide/deployment#simplest-deployment-possible

https://angular.io/guide/deployment#the-base-tag

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM