2016-09-26 6 views
1

チュートリアル(https://angular.io/docs/ts/latest/guide/router.html)と同じ構造でAngular 2アプリケーション(RCまたはベータではない最新フルリリース)を設定しました。角度2で作業するルーティングを取得できません

<script src="node_modules/core-js/client/shim.min.js"></script> 
<script src="node_modules/zone.js/dist/zone.js"></script> 
<script src="node_modules/reflect-metadata/Reflect.js"></script> 
<script src="node_modules/systemjs/dist/system.src.js"></script> 

<!-- 2. Configure SystemJS --> 
<script src="systemjs.config.js"></script> 

そして、この行は、エラー生成します。私は私のIndex.htmlと上

<base href="/" /> 

を置くとき、私は次のために404エラーが出る「JavaScriptのランタイムエラー: 『システムが』未定義である」 をSystem.import( 'app')。catch(function(err){console.error(err);});

ベースタグを削除した場合、上記はすべて問題ありませんが、「ベースhrefが設定されていません」というメッセージが表示されます。APP_BASE_HREFトークンの値を指定するか、ドキュメントにベース要素を追加してください。私は

<base href="app" /> 

にベースHREFを変更した場合

が、私は上記のいずれかの404エラーを取得しないのどちらかが、私はエラーを取得する以下

「未処理の約束拒否は:任意のルートを照合することはできません」私のapp.routing.tsです:

import { ModuleWithProviders } from '@angular/core'; 
import { Routes, RouterModule } from '@angular/router'; 
import { BatteriesComponent } from './batteries/batteries.component'; 
import { CabinetsComponent } from './cabinets/cabinets.component'; 
import { RacksComponent } from './racks/racks.component'; 
import { ReportsComponent } from './reports/reports.component'; 

const appRoutes: Routes = [ 
{ 
    path: '', 
    redirectTo: './app/batteries/batteries', 
    pathMatch: 'full' 
}, 
{ path: 'batteries', component: BatteriesComponent }, 
{ path: 'cabinets', component: CabinetsComponent }, 
{ path: 'racks', component: RacksComponent }, 
{ path: 'reports', component: ReportsComponent } 
]; 

export const appRoutingProviders: any[] = [ 

]; 

export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes); 

助けてください。

ありがとうございました

答えて

0

このエラーは、指定したソースがインデックスに見つからないことを示しています。

index.htmlが参照しているファイルと異なる可能性はありますか?

-src/index, app 
-node_modules/core-js/client/shim.min.js 

セットアップがこのようであれば、あなたはあなたのライブラリファイルが../node_modules/core-js/client/shim.min.jsなどであることのための相対パスをしなければならない...それはのための基本と初期であるため、

また、あなたのインデックスが<base href="/" />を持っている必要がありますあなたのアプリケーションのブートストラップ他のすべてのファイルは、その位置に関連して配置されます。

ルーティングリダイレクトは、指定したパスにリンクする必要があります。 './app/batteries/batteries'の代わりに、相対リダイレクトの場合は'batteries'、反対の場合は'/batteries'を使用してください。

もしあなたがplnkを投稿できるのであれば、これで十分ではない場合に最も有益でしょう。

+0

ありがとうございました。私はBaseのhrefとして "/ MyAppName /"を入れなければならなかった。 – LanceM

+0

それがあなたを助けたら答えとしてマークしてください!ありがとう!! – Nico

関連する問題