2016-03-31 5 views
1

これは以下のフォローアップAngular 2.0 router not working on reloading the browser 私はHashLocationStrategyを使用するようにルータを設定しても、まだ#を使わずにURLパスを取得します。私は正確にAngular2ドキュメントhttps://angular.io/docs/ts/latest/tutorial/toh-pt5.html に従うと説明した場所戦略を設定し、ここでhttps://angular.io/docs/ts/latest/guide/router.htmlAngular2ルーティングno HashLocationStrategyでもハッシュ

私のブートストラップ:

import {bootstrap} from 'angular2/platform/browser'; 
import {provide} from 'angular2/core'; 
import { 
    ROUTER_PROVIDERS, 
    LocationStrategy, 
    HashLocationStrategy 
} from 'angular2/router'; 

import {AppComponent} from './app.component'; 

bootstrap(AppComponent, [ 
    ROUTER_PROVIDERS, 
    provide(LocationStrategy, { useClass: HashLocationStrategy }) 
]); 

とルータの設定:

@RouteConfig([ 
    { 
     path: '/detail/:id', 
     name: 'HeroDetail', 
     component: HeroDetailComponent 
    }, 
    { 
     path: '/heroes', 
     name: 'Heroes', 
     component: HeroesComponent 
    }, 
    { 
     path: '/dashboard', 
     name: 'Dashboard', 
     component: DashboardComponent, 
     useAsDefault: true 
    } 
]) 

私が見ることを期待したいですURLはhttp://localhost/#/dashboardですが、http://localhost/dashboardとなります。 私は何が欠けていますか?

答えて

0

useAsDefaultがリダイレクトとして機能していると私は理解しています(間違っているかもしれませんが、私はAngular2から始まっています)。しかし、サーバーの観点からは、すべてのページが「/」になっているため、ハッシュロケーションを使用する場合はこれは必要ありません。

+0

削除_useAsDefault_が最初のリダイレクトを削除しますが、私の問題を解決していません。 – Gregor

1

ROUTER_PROVIDERを移動してapp.component.tsファイルに(..)を追加してみてください。

@ Component.providers-Arrayに貼り付けてください。より詳細な回答については

は、この記事を見て、それはあなたに近いと思われる私の問題を解決しました: https://stackoverflow.com/a/35879541/4977476

+0

ありがとう!確かに!問題は、LocationStrategyの定義です。それは、ブートストラップにではなくプロバイダの配列に移動しなければなりません。 – Gregor

0

それの作品を参照してください。

...

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

import { 
    APP_BASE_HREF, 
    LocationStrategy, 
    HashLocationStrategy 
} from '@angular/common'; 


... 

const appRoutes: Routes = [ 
    { path: '', loadChildren: './user-profile/user-profile.module#UserProfileModule'}, 
    ... 
]; 

@NgModule({ 
... 
    providers: [ { provide: APP_BASE_HREF, useValue: "/core/user" }, {provide: LocationStrategy, useClass: HashLocationStrategy}], 
    bootstrap: [AppComponent] 
}) 
export class AppModule { } 
関連する問題