У меня есть приложение Angular5, которое использует HashLocationStrategy. Хеш действительно появляется в адресной строке, и навигация работает отлично. Но когда я нажимаю F5, страница не обновляется. Вместо этого он перемещается в корень приложения. Мой app-router ниже.
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { MessageListComponent } from './message-list/message-list.component';
import { PageNotFoundComponent } from './page-not-found/page-not-found.component';
import { LoginComponent } from './login/login.component';
import { AboutComponent } from './about/about.component';
import { AuthGuard } from './guards/auth.guard';
import { MessageDetailsComponent } from './message-details/message-details.component';
import { RedeliverComponent } from './redeliver/redeliver.component';
import { GraphComponent } from './graph/graph.component';
import { AccessDeniedComponent } from './access-denied/access-denied.component';
import { AdminGuard } from './guards/admin.guard';
import { ErrorManagerGuard } from './guards/error-manager.guard';
import { TestlistComponent } from './testlist/testlist.component';
import { TestdetailsComponent } from './testdetails/testdetails.component';
import { HashLocationStrategy, LocationStrategy } from '../../node_modules/@angular/common';
const appRoutes: Routes = [
{ path: 'testlist', component: TestlistComponent },
{ path: 'testdetails/:id', component: TestdetailsComponent },
{ path: 'login', component: LoginComponent },
{ path: 'accessDenied', component: AccessDeniedComponent },
{ path: 'about', component: AboutComponent },
{ path: 'graph', component: GraphComponent, canActivate: [AdminGuard] },
{ path: 'redeliver', component: RedeliverComponent, canActivate: [ErrorManagerGuard] },
{ path: 'list', component: MessageListComponent, canActivate: [AuthGuard] },
{ path: 'details/:id', component: MessageDetailsComponent, canActivate: [AuthGuard] },
{ path: '', redirectTo: '/list', pathMatch: 'full' },
{ path: '*', component: PageNotFoundComponent }
]
@NgModule({
imports: [
RouterModule.forRoot(appRoutes, { useHash: true , enableTracing:true})
],
exports: [RouterModule],
providers: [
{ provide: LocationStrategy, useClass: HashLocationStrategy }
]
})
export class AppRoutingModule { }
Понятия не имею, что происходит. Я создал новый проект для тестирования HashLocationStrategy, и обновление работало нормально на новом проекте. Я также добавил два фиктивных компонента в свой существующий проект, чтобы посмотреть, не вызывает ли проблема какой-либо из моих компонентов, но фиктивные компоненты тоже не работают. Может кто-нибудь помочь мне исправить поведение при обновлении?