Angular2 RC5延迟加载路由无法找到模块

时间:2016-08-12 13:18:29

标签: angular angular2-routing

我正在尝试在我的应用中实现RC5更改,并且在我的路由中延迟加载模块时遇到了一些麻烦。

这是我的应用中受影响文件的结构:

/app
   /components/meda/meda.module.ts
   /components/meda/meda.routing.ts
   app.routing.ts

这是我的app.routing.ts

const routes: Routes = [
  { 
    path: '', 
    redirectTo: 'init', 
    pathMatch: 'full'
  },
  { 
    path: 'init', 
    loadChildren: './components/init/init.module#InitModule' 
  },
  { 
    path: 'meda', 
    loadChildren: './components/meda/meda.module#MedaModule' 
  }
];

和我的meda.module.ts

@NgModule({
  imports: [ routing ],
})
export class MedaModule { }

我的应用程序很好地加载到init路由中,因为bootstrap加载了InitModule,但是一旦我尝试导航到meda,我得到以下内容

GET http://localhost/web/components/meda/meda.module 404 (Not Found)

似乎无法找到模块位置。我也试过

loadChildren: 'app/components/meda/meda.module#MedaModule'

但没有运气;知道我做错了什么吗?

由于

2 个答案:

答案 0 :(得分:0)

我有同样的问题,我根据Thorsten Viel的评论改变了我的道路。这是我的文件夹结构来说明;

/wwwroot
     /app
     /scripts

我的.ts文件位于' wwwroot / app'夹。我使用' gulp-typescript'在。wwwroot / scripts'下将.ts文件转换成.js文件。夹。例如,如果您的init.module.ts路径为:wwwroot/app/components/init/init.module且您的.js文件已转换为:wwwroot/scripts/components/init/init.module,则应指定如下:

loadChildren: 'wwwroot/scripts/components/init/init.module#InitModule'

它应该有用,我希望它有所帮助。

答案 1 :(得分:0)

在没有前导的情况下编写路径。或./或/

loadChildren: 'components/init/init.module#InitModule' 

地址的起点是你的html文件的位置。