Как установить "страницу по умолчанию" для Angular в Azure Web App на плане обслуживания Linux

Я могу развернуть Angular для Azure Web Apps в плане обслуживания Linux, и он отлично работает при нажатии {myapp}.azurewebsites.net/index.html

Я могу перемещаться внутри приложения, как и ожидалось.

При попадании в root {myapp}.azurewebsites.net он просто отображает hostingstart.html.

Это не помогает удалить hostingstart.html, как предлагается в некоторых статьях.

Если я пытаюсь напрямую перейти по URL-адресу подстраницы (например, {myapp}.azurewebsites.net/mypage), я получаю сообщение об ошибке: Cannot GET / mypage (это работает при локальном запуске)

Я подозреваю, что мне нужно настроить страницу по умолчанию, но я не могу найти ее в настройках приложения в Azure Web App. (Я думаю, что это доступно только в тарифных планах Windows, но не в тарифных планах Linux).

Как правильно выполнить развертывание в службе приложений Linux, чтобы это работало?

Я нашел много статей по этой проблеме, но все они, кажется, охватывают План обслуживания Windows App.

1 ответ

Вам нужно добавить правила перезаписи URL на сервер Apache, чтобы любой запрос страницы перенаправлялся на Angular. index.html

Вставьте это в свой корень .htaccess файл:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>

(Источник: https://github.com/angular/angular/issues/11884)

РЕДАКТИРОВАТЬ: Если используется серверная часть node.js, см. Этот ответ SO для справки: /questions/8005174/kak-obrabatyivat-marshrut-marshruta-angular2-v-nodejs/8005191#8005191

Другие вопросы по тегам