Приложение response.js, показывающее 404, не найденное на сервере nginx

Я загрузил приложение react.js на сервер. Я использую сервер nginx. Приложение работает нормально. Но когда я перехожу на другую страницу и обновляюсь, сайт не работает. Он показывает 404 Не найдена ошибка.

Как я могу это решить.

Спасибо.

Ответ 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 обратно в браузер.

Ответ 2

Я попробовал это, но не получил никакого успеха. location/{ try_files $uri/index.html; }

Любое другое изменение конфигурации в приложении реакции? Помощь действительно нужна и ценится. Я искал решение больше недели.