2016-08-12 15 views
1

私のアプリケーションで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 { } 
です

ブートストラップにInitModuleがロードされるため、アプリケーションがinitルートに正常にロードされますが、一度メダに移動しようとすると次のようになります。

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

モジュールの場所が見つからないようです。私も試しました

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

運がありません。私が間違って何をしているのか?私は同じ問題を持っていた

おかげ

+0

ワークフローを使用して、配布用に個別のディレクトリにjsファイルを作成する場合(gulpなど)あなたはそのパスを参照する必要があります。その代わりに、typescriptでインポートするときに参照するために使用されます。 実際には、サーバー上の.jsファイルへのパスであり、アプリケーション構造内のtsファイルではないため、404. –

+0

ですが、サーバー内のファイルは実際はbundle.app.js内にありますそれでは? – David

+0

遅延ロードは、必ずしも必要ではないため、最初にロードしたくない実装ファイルをロードすることに関するものです。 bundle.app.jsにコードがあり、このファイルをあなたのアプリケーションのスタートでロードすると、読み込まれているものが待ち構えています(遅延読み込みのhtmlファイルのみ?)。 –

答えて

0

は、私はトルステンヴィエルのコメントによると、私のパスを変更しました。ここに私のフォルダ構造を示します。

/wwwroot 
    /app 
    /scripts 

私の.tsファイルは 'wwwroot/app'フォルダにあります。私はgulp-typescriptを使って.tsファイルを 'wwwroot/scripts'フォルダの.jsに変換します。あなたのinit.module.tsパスがある場合たとえば、:wwwroot/app/components/init/init.moduleとあなたの.jsファイルをにtranspiledさ:wwwroot/scripts/components/init/init.module、あなたは次のように指定する必要があります:

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

それは動作するはずです、私はそれが役に立てば幸い。

0

先頭にパスを書きません。 ./または/

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

住所の開始点は、お客様のhtmlファイルの場所です。

関連する問題