2016-07-06 8 views
0

パラメータでAngular2ルートを設定しました。私が[routerLink]のうちの1つから/censo/119または/viaje/119にアクセスしたとき、それはうまく機能します。しかし、私が直接http://localhost:3000/censo/119のURLに行くと、私は404を取得します。Angular2パラメータのURLが直接訪問したときに機能しない

私は開発用アプリケーションにlite-serverを使用しています。

設定がありません。別のサーバーを使用する必要がありますか?

これは私のapp.routes.ts

const routes: RouterConfig = [ 
    { path: '', component: CensoComponent }, 
    { path: 'censo', component: CensoComponent }, 
    { path: 'viajes', component: ViajesComponent }, 
    { path: 'censo/:viaje', component: CensoDetailComponent }, 
    { path: 'viajes/:viaje', component: ViajesDetailComponent }, 
]; 

そして、これが私のrouterLinks

<a [routerLink]="['/censo']">Censo</a> 
<a [routerLink]="['/viajes']">Viajes</a> 
<a [routerLink]="['/censo',119]">Censo 119</a> 
<a [routerLink]="['/viajes',119]">Viaje 119</a> 
<router-outlet></router-outlet> 

EDIT

あるある私はbs-config.jsonを追加しましたが、私は同じ動作を取得しています。

{ 
    "port": 8000, 
    "files": ["./**/*.{html,htm,css,js}"], 
    "server": { "baseDir": "." } 
} 

これはブラウザに表示されます。 May it has something to do with systemjs?

これは私のプロジェクト構造です。

./

./app

おかげ

+0

はあなたのルートが見えFiのne。この投稿の私の答えを見てください。 https://stackoverflow.com/questions/38209427/angular-2-tutorial-on-os-x-el-capitan-returns-cannot-get-in-browser/38209590#38209590 –

+0

あなたが 'routerLink'からリンクを訪問するとどのURLがブラウザにありますか? –

+0

@AleksandrM 'http:// localhost:3000/viajes/119' – Darkade

答えて

0

あなたはあなたのindex.htmlと同じ場所からlite-serverコマンドを実行する必要があります。デフォルトの動作では、現在のフォルダのコンテンツが表示され、ブラウザが開き、HTML5フォールバックがindex.htmlに適用されます。

何らかの理由で、あなたがそのフォルダからコマンドを実行し、あなたからLITE-サーバーを実行したフォルダの子であるsrcマップであなたのindex.html存在することができない場合は、serverbs-config.jsonファイルを追加する必要がありますし、このようなbaseUrlプロパティ:

{ 
    "server": { "baseDir": "./src" } 
} 

そして、あなたの設定のファイル名に応じて、このようなライト・サーバを実行して、場所に:

lite-server -c ./bs-config.json 
+0

' lpm-server'を実行していて、 'package.json'と' index.html'は同じフォルダにあります。 ''の他に 'index.html'に何か他のものが必要ですか?ありがとう。 – Darkade

+0

ありがとうございます。私は 'bs-config.json'を追加しましたが、私は同じ動作をしています。 – Darkade

関連する問題