Как можно скрыть тег # в URL в angular - маршрутизация - PullRequest
0 голосов
/ 29 апреля 2020

Чтобы маршрутизация работала нормально на хосте сервера, мы можем включить useHa sh = true, как указано в файле app-routing.module.ts.

@NgModule({
  imports: [RouterModule.forRoot(routes, { useHash: true })],
  exports: [RouterModule]
})

На самом деле, с этим решением мы можем перемещаться внутри компонентов хорошо в нашем приложении. Но он всегда показывает тег # во вкладке URL.

т.е.: http://00.00.190.147: 4202 / # / request

Кажется, что некоторые довольно странный вид. Есть ли способ скрыть тот или иной способ сделать идеальную маршрутизацию на хосте в Angular приложении.

Ответы [ 2 ]

0 голосов
/ 29 апреля 2020

Установите для useHa sh значение false.

Например: - RouterModule.for Root (appRoutes, {useHa sh: false})

0 голосов
/ 29 апреля 2020

Когда вы используете ng serve для локального обслуживания приложения, оно имеет свою собственную конфигурацию сервера. Вы должны настроить свой сервер аналогичным образом, чтобы все маршруты указывали на index.html. Маршрутизатор angular отслеживает URL-адрес браузера и изменяет представление приложения. Приложение angular представляет собой одностраничное приложение.

Извлеките https://angular.io/guide/deployment#routed -apps-must-fallback-to-index html для настройки конфигурации браузера, указывающей на индекс. html.

Кроме того, если у вас есть собственные API, использующие тот же домен, вам может понадобиться поместить эти пути в массив ресурсов из angular. json, чтобы angular приложение не рассматривает их как маршрут angular и рассматривает их как ресурсы (просто простой взлом!) Это необязательно, если вы используете сервер NodeJs, но для IIS это может быть хорошим взломом.

Например: если ваше angular приложение работает на http://www.example.com, а ваши API-интерфейсы похожи на http://www.example.com/api/users, http://www.example.com/api/user/52, http://www.example.com/api/books, et c, вы должны добавить 'api' в массиве активов в файле angular. json все, что после http://www.example.com/api/ будет считаться ресурсом, а не частью маршрута приложения angular.

При этом вы можете установить флаг useHa sh = false или удалите его. RouterModule.forRoot(routes)

...