То, что вы ищете, это APP_BASE_HREF
. В вашем модуле маршрутизации app-routing.module.ts
добавьте в свой модуль providers
массив { provide: APP_BASE_HREF, useValue: '!' }
и импортируйте import { APP_BASE_HREF } from '@angular/common';
вверху файла. Похоже, вы уже используете HashLocationStrategy
.
Пример app-routing.module.ts
:
import { NgModule } from '@angular/core';
import { Routes, RouterModule} from '@angular/router';
import { APP_BASE_HREF } from '@angular/common';
const routes: Routes = [
{ path: '**', redirectTo: '404-not-found' }
];
@NgModule({
imports: [
RouterModule.forRoot(routes, {
useHash: true
})
],
exports: [ RouterModule ],
providers: [
{ provide: APP_BASE_HREF, useValue: '!' }
]
})
export class AppRoutingModule {}
Дополнительное чтение документации Angular 4
PathLocationStrategy
PathLocationStrategy
- это LocationStrategy
, используемый для настройки
Location
сервис для представления своего состояния в path
браузера
URL.
Если вы используете PathLocationStrategy
, вы должны предоставить APP_BASE_HREF
или добавьте базовый элемент в документ. Этот префикс URL, который будет
сохраняется при генерации и распознавании URL.
Например, если вы предоставите APP_BASE_HREF
из '/my/app'
и позвоните
location.go('/foo')
, URL браузера станет
example.com/my/app/foo
.
Аналогично, если вы добавите <base href='/my/app'/>
к документу и вызовете
location.go('/foo')
, URL браузера станет
example.com/my/app/foo
.
HashLocationStrategy
Вы можете пойти в школу с HashLocationStrategy
, предоставив
useHash: true
в объекте в качестве второго аргумента
RouterModule.forRoot
в AppModule
.
APP_BASE_HREF
... APP_BASE_HREF
токен представляет собой базовую ссылку, которая будет использоваться ...
строка, представляющая префикс URL, который должен быть сохранен при генерации и распознавании URL