Измените hash-url на hash-bang url, используя angular4 - PullRequest
0 голосов
/ 02 июля 2018

Я использую angulr4, это мой URL http://localhost/#/login.html Я хочу изменить этот URL-адрес на http://localhost/#!/login.html. Я нашел решение для angularjs, но не для angular4. Я использую «Prerender Node» для SEO, это ссылка https://www.npmjs.com/package/prerender-node

Заранее спасибо

1 Ответ

0 голосов
/ 02 июля 2018

То, что вы ищете, это 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

...