我最近升级到Angular2最终版本。我不认为这是重复的,因为HashLocationStrategy在Angular2 Final / RC7更新后停止为我工作。以前,刷新页面将使用哈希(#)获取/获取相关路由并重新加载页面。现在,我在任何刷新的页面上都会出现此错误:
我相信这种情况正在发生,因为它正在尝试加载http://localhost:3000/main/home
而不是http://localhost:3000/#/main/home
。
知道HashLocationStrategy
停止工作的原因吗?我应该在HashLocationStrategy
中导入@NgModule
吗?
答案 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 { }