2017-03-24 20 views
0

私はangular2ルーティングを使用するASP.NET COREアプリケーションを持っています。ローカルルートを実行すると、期待どおりに解決されます。 IIS 7を実行しているサーバーに公開すると、ルートは展開されたWebサイトではなくサーバールートに解決されるように見えますが、依然としてページがレンダリングされます。下の例では、「ページURL」は私がナビゲートするページですが、「結果URL」はブラウザのアドレスバーに表示されます。Angular2ルーティングwith .NETコア

page url --> http://myserver/myapp/home 

result url --> http://myserver/home 

これはなぜ発生しているのですか?これはIIS設定ですか、角度ルーティングの問題ですか、.NET COREの設定ですか?

これは、私のルートがangular2で設定されている方法です。

const routes: ClientRouterConfig = [ 
    { displayName: 'Dashboard', icon: 'fa fa-tachometer', path: '', redirectTo: 'home', pathMatch: 'full' }, 
    { showInNavigationMenu: true, displayName: 'Dashboard', icon: 'fa fa-tachometer', path: 'home', component: HomeComponent }, 
    { showInNavigationMenu: true, displayName: 'New Work Order', icon: 'fa fa-plus', path: 'workorder', component: WorkorderComponent }, 
    { showInNavigationMenu: false, displayName: 'Work Order', icon: 'fa fa-wrench', path: 'workorder/:id', component: WorkorderComponent }, 
    { showInNavigationMenu: false, displayName: 'New Task', icon: 'fa fa-user', path: 'task/create/:woid', component: TaskComponent }, 
    { showInNavigationMenu: false, displayName: 'Task', icon: 'fa fa-user', path: 'task/:id', component: TaskComponent }, 
    { displayName: 'Dashboard', icon: 'fa fa-tachometer', path: '**', redirectTo: 'home' } //this must be last 
]; 

@NgModule({ 
    imports: [RouterModule.forRoot(routes)], 
    exports: [RouterModule] 
}) 

export class AppRoutingModule { 
    getRoutes() { 
     return routes; 
    } 
} 
+1

を使用すると、インデックスファイルのHTMLのheadタグ内の<基本のhref =「/ myappに/」それだった – happyZZR1400

+0

ブームを追加しようと持っています!どうもありがとうございました!それを答えとして投稿したいのであれば、それは正しいとマークします – hewstone

答えて

1

私はhereそれを見つけた:

あなたはpushStateルーティングを動作させるためのアプリのindex.htmlをに<base href>要素を追加する必要があります。 CSSファイル、スクリプト、およびイメージを参照するときに、ブラウザは<base href>の値を使用して相対URLのプレフィックスを設定します。

だからあなたの場合には、私はそれがだと思う:

<base href="/myapp/" > 
関連する問題