2017-09-02 10 views
2

私はこの明らかに単純な問題に多大な時間を費やしてきました。私はpage2は次のように定義されたルートを、持っている:角度ルーティングは常にホームページにリダイレクト

// app.module.ts 
import { Page2Component } from './page2/page2.component'; 

@NgModule({ 
    declarations: [ 
    AppComponent, 
    Page2Component 
    ], 
    imports: [ 
    BrowserModule, RouterModule.forRoot([ 
     { path: 'page2', component: Page2Component }, 
    ]) 
    ], 
    providers: [], 
    bootstrap: [AppComponent] 
}) 
export class AppModule { } 

私はindex.html<base href="/">ことをチェックしました。しかし、手動でhttp://localhost:4200/page2と入力すると、私はいつもホームページ(app.componentで定義)にリダイレクトされます。

私はクイックスタートガイドを何度も繰り返しましたが、理由を理解できませんでした。私のルート定義に何が間違っていたのですか?


編集:私は、ブランド(ng new test-appを経由して)新しいアプリケーションと新しいpage2コンポーネント(ng generate component page2)でそれをテストしました。それでも同じ問題。私はこれまで以上に混乱しています。

+0

これは 'ng serve'ですか、' ng build'の内容をホストしようとしていますか? 'ng serve'でこの問題に遭遇しているのなら、あなたの完全なapp.module.ts *を投稿してください。あなたがdistバージョンをホストしようとしているなら、下記の私の答えを見てください。 –

+0

あなたのすべてのルートを表示 –

答えて

3

私は他のポストを見つけ

はあなたのルートコンポーネント

+0

これ。それがとても簡単だとは信じられない! –

1

最も可能性のある問題は、RouterModuleまたはRoutesをインポートしていないことです。

は必ず含めてください:

import { RouterModule, Routes } from '@angular/router'; 

編集:前の回答では、私は可能な他の問題が含まれていますが、ルートが入力する必要はありません。これらの両方を含めると、おそらくブラウザーに関連するエラーになります(これは、ルートパラメーター転送を有効にしないでApacheサーバーで発生します)。 ng buildにしようとしていて、distファイルを使用する場合は、パラメータ転送を有効にする必要があります。 githubのthis postを参照してください。 ng serveでローカルでアプリを実行するには問題はありません。

0

をロードするapp.component.htmlにそれを追加し、あなたがあなたのApp.component.htmlに<router-outlet></router-outlet>を追加逃していると思いますAngular2 - app.module routing: blank path not redirecting to component私の問題を解決する。私はから切り替えた場合:

export const ROUTES: Routes = [ 
    { path: '', component: LoginComponent }, 
    { path: 'dashboard', component: DashboardComponent } 
]; 

export const ROUTES: Routes = [ 
    { path: 'dashboard', component: DashboardComponent }, 
    { path: '', component: LoginComponent } 
]; 

にそれが動作するように始めました。

関連する問題