Обработка проверки электронной почты с помощью приложения React с использованием производственной сборки - PullRequest
0 голосов
/ 12 февраля 2020

У нас есть одностраничное приложение (созданное с помощью create-реагировать-приложение), которое использует React в браузере и сервер nodejs / express на серверной части. Приложение позволяет пользователям регистрироваться, входить в систему и выполнять различные функции. После регистрации пользователя с адресом электронной почты приложение React (через наш внутренний сервер) отправляет электронное письмо пользователю со ссылкой для проверки электронной почты. Пользователь нажимает на ссылку (например, example.com/accountVerification/:id), которая открывается в браузере. После открытия приложения React затем проверяет адрес электронной почты на внутреннем сервере, и пользователю теперь разрешено входить в систему.

Все это работает без проблем при запуске приложения React с использованием сборки разработки, то есть с использованием '* 1009. * start '.

Однако в производственной среде мы развертываем производственную сборку, сгенерированную с помощью' npm run build '. Мы обслуживаем приложение, используя nginx. В этой среде nginx был настроен для обслуживания файла индекса. html, который был создан в процессе сборки. Опять же, все работает хорошо, за исключением случаев, когда используется ссылка для проверки электронной почты, которая дает 404. Кажется, что любая конечная страница после «/» в URL не работает и приводит к 404.

Так что вопрос, как должны работать ссылки для проверки электронной почты при использовании рабочей сборки приложения React? Или, в общем, почему браузер refre sh fail (404) при запуске производственной сборки приложения React?

1 Ответ

0 голосов
/ 12 февраля 2020

Вы должны настроить nginx для обслуживания индекса. html для всех маршрутов, поэтому добавьте:

location / { try_files $uri /index.html; }

в свою конфигурацию nginx.

...