Реактивные прямые ссылки маршрутизатора не работают на Azure Web App Linux - PullRequest
1 голос
/ 23 апреля 2020

Я разработал Po C для PWA (Progressive Web Apps) с использованием ReactJs, чтобы показать, как использовать камеру, геолокацию, микрофон, датчики освещения и т. Д. c из Browser API.

Я создал маршрут для каждой функции в этом веб-приложении, и все отлично работает в localhost. Но когда я развернул npm версию моего приложения реакции на Azure Wep App Linux service , это не сработало должным образом. Я могу получить доступ к главной странице (index. html) и оттуда я могу перейти на любую другую страницу, но когда я пытаюсь получить доступ к любому маршруту непосредственно из его URL-адреса, я получаю сообщение об ошибке 404. За исключением страницы индекса, все URL не работают при обновлении или записи вручную.

Пример:
https://pwa.mypoc.dev/ - Работает нормально
https://pwa.mypoc.dev/lights - Не работает

Я использовал эту команду для azure "Настройки" > «Общие настройки»> «Команда запуска»:

pm2 serve /home/site/wwwroot/build --no-daemon

Я нашел вопрос, связанный с ним, но ответ мне не помог, так как я не использую web.config, потому что это Linux машина работает с узлом 10 LTS : React App не запускается в azure службе приложений

1 Ответ

1 голос
/ 23 апреля 2020

После небольшого исследования я нашел проблему. Поскольку Linux Azure Web Apps использует pm2 для обслуживания приложения узла, я нашел ответ, изучив официальную документацию.

PM2 - диспетчер процессов демона, который поможет вам управлять и поддерживать ваше приложение онлайн. Начать работу с PM2 просто, он предлагается в виде простого и интуитивно понятного интерфейса командной строки, устанавливаемого через NPM.

https://pm2.keymetrics.io/docs/usage/pm2-doc-single-page/#serving -spa-redirect-all-to-index html

Просто нужно добавить опцию --spa в Команду запуска на Azure Веб-приложения Linux Общие настройки :

pm2 serve /home/site/wwwroot/build --no-daemon --spa

При использовании опции --spa pm2 автоматически перенаправит все запросы в индекс. html, а затем реагирует, маршрутизатор выполнит свои действия c.

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