Запустите приложение Angular 7 на основе маршрутизации как `file: //` (без сервера) - PullRequest
0 голосов
/ 05 мая 2019

У меня есть угловое приложение, которое основано на маршрутизации , я хочу связать его в приложение WebView в виде html-файла, чтобы оно было доступно ~/app_path/index.html

Я успешно построил его с ng build --prod --output-path ./../ng-build, и он нормально загружается в браузере.

Проблема в том, что если я использую модуль маршрутизатора, я получу предупреждение Unhandled Navigation Error, а маршруты просто не работают.

Я пытался использовать хэши с useHash

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

и ожидал, что он может работать с маршрутами, например

`~/app_path/index.html#settings`
`~/app_path/index.html#profile`
`~/app_path/index.html#details`

но это не помогает - сбой маршрутизатора сразу после запуска приложения

enter image description here

Есть ли какое-либо решение или обходной путь для достижения маршрутизации в этом режиме file://? Или, может быть, другой подход к архитектуре для использования здесь в приложении вместо маршрутизации.

1 Ответ

1 голос
/ 05 мая 2019

согласно этой теме установка <base> href attr для абсолютного пути помогает решить проблему маршрутизации

<script>document.write('<base href="' + document.location + '" />');</script>

поэтому базовый элемент будет выглядеть так

<base href="file:///Users/guest/build/index.html">

демонстрация маршрутизации:

enter image description here

...