我想在我的应用程序中实现RC5更改,并且在延迟加载模块时遇到了一些麻烦。Angular2 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'
但没有运气;任何想法我做错了什么?
感谢
如果您使用工作流程为您的发行版在不同的目录中创建js文件(例如使用gulp)。您必须引用该路径,而不是在打字稿中导入时使用的路径。 所以它实际上是服务器上的.js文件的路径,而不是你应用程序结构中的ts文件,因此是404。 –
但服务器中的文件实际上是在一个bundle.app.js中,这将如何工作呢? – David
延迟加载是关于加载您并不总是需要的实现文件,因此最初不想加载。如果你有bundle.app.js中的代码,并且在你的应用程序启动时加载这个文件,那么你预计什么时候会加载懒惰,因为东西已经通过网络传输(只有html文件被延迟加载?)。 –