Angular2 Final:页面刷新错误,'无法获取'路线。 HashLocationStrategy失败了

时间:2016-09-20 13:51:13

标签: angular typescript routing angular2-routing

我最近升级到Angular2最终版本。我不认为这是重复的,因为HashLocationStrategy在Angular2 Final / RC7更新后停止为我工作。以前,刷新页面将使用哈希(#)获取/获取相关路由并重新加载页面。现在,我在任何刷新的页面上都会出现此错误:

enter image description here

我相信这种情况正在发生,因为它正在尝试加载http://localhost:3000/main/home而不是http://localhost:3000/#/main/home

知道HashLocationStrategy停止工作的原因吗?我应该在HashLocationStrategy中导入@NgModule吗?

2 个答案:

答案 0 :(得分:3)

您应该在LocationStrategy的提供商中将HashLocationStrategy设置为AppModule

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

@NgModule({
    imports: [
        ...
    ],
    declarations: [
        ...
    ],
    bootstrap: [...],
    providers: [
        { provide: LocationStrategy, useClass: HashLocationStrategy }
    ]
})

export class AppModule { }

答案 1 :(得分:0)

我不知道这是否仍然有效,但有一种更清洁的方式:

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

@NgModule({
    imports: [
        RouterModule.forRoot(ROUTES_ARRAY, {useHash: true})
    ],
    declarations: [
        ...
    ],
    bootstrap: [...],

})

export class AppModule { }