2017-06-16 10 views
0

アドレスバーから角度2のルートを開こうとすると、私は引き続きhttp 404応答を受信しますが、 "routerLink"ディレクティブでアンカーを使用しているルートに移動することは問題ありません。私はAngular's Deployment Guideで指示されているURLの書き換えのために私のweb.configファイルを修正しようとしましたが、これは通常私のルーティングを完全に破壊します。最後に、私はindex.htmlファイルに<base href="/">を含めましたが、これも役に立ちませんでした。コミュニティからの援助は非常に高く評価されています!アドレス2のルーティング - アドレスバーからのリンク

はここに私のルーティングコンポーネントのコードです:

import { NgModule } from '@angular/core'; 
import { RouterModule, Routes } from '@angular/router'; 
import { ClientsComponent } from './clients.component'; 

const routes: Routes = [ 

    { path: 'clients', component: ClientsComponent }, 
    //^This does not work from address bar, only from routerLinks. 
    { 
     path: '**', 
     redirectTo: '', 
     pathMatch: 'full' 
    }, 
]; 

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

export class AppRoutingModule { } 
+0

あなたは簡単に[RouterModule.forRoot(ルート、{useHash:真})] 'と言って'# 'ベースのルーティングを可能にすることで、この問題を解決することができ、あなたが –

+0

をルーティング' html5mode'を必要としない場合には、 'ありがとうPankaj、これはうまくいったけど、私は自分のURLに#記号をつけたくない。 "ハックな"回避策のようだ。これはAngular 2とIISの既知の問題ですか? – DotNetDev

+0

いいえ、これはIISとは別のサーバーで発生する可能性があります。そのような要求を処理するようにサーバを設定する必要があります。 'systemjs' /' weback'を使用しているモジュールローダを知ることができますか? –

答えて

1

がtrueにusehashを設定してみてください、これはあなたの問題を解決する必要があります。

RouterModule.forRoot(routes, { useHash: true }) 
+1

Maniさん、ありがとう、Panajは彼のコメントで同じように提案しました。このソリューションはうまくいきますが、私のURLに#記号がないようにしたいと思います。 – DotNetDev

+0

"useHash"を有効にしたところ、より良い解決策を見つけられなかった。ありがとう! – DotNetDev

関連する問題