Ответ 1
Когда ваше приложение react.js
загружается, маршруты обрабатываются на интерфейсе с помощью react-router
. Скажем, например, вы находитесь в http://a.com
. Затем на странице вы перейдете к http://a.com/b
. Это изменение маршрута обрабатывается в самом браузере. Теперь, когда вы обновляете или открываете url http://a.com/b
на новой вкладке, запрос отправляется на ваш nginx
, где конкретный маршрут не существует, и, следовательно, вы получаете 404.
Чтобы этого избежать, вам нужно загрузить корневой файл (обычно index.html) для всех несовлокальных маршрутов, чтобы nginx
отправил файл, а затем маршрут обработан вашим реактивным приложением в браузере. Чтобы сделать это, вы должны сделать следующее изменение в nginx.conf
или sites-enabled
соответствующим образом
location / {
try_files $uri /index.html;
}
Это говорит nginx
искать указанный $uri
, если он не может найти его, а затем отправить index.html
обратно в браузер.