Как установить «страницу по умолчанию» для Angular в Azure Web App на плане обслуживания Linux - PullRequest
0 голосов
/ 14 ноября 2018

Я могу развернуть 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 Ответ

0 голосов
/ 14 ноября 2018

Вам необходимо добавить правила перезаписи URL на сервер Apache, чтобы любой запрос страницы перенаправлялся на Angular's 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#issuecomment-288852433)

РЕДАКТИРОВАТЬ: Если используется серверная часть node.js, см. Этот ответ SO для справки: https://stackoverflow.com/a/34864585/235648

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...