Рейтинг:0

nginx возвращает 404 при обслуживании React из подкаталога

флаг mp

Я начал с приложения React, которое обслуживается из корня nginx. Затем я последовал это руководство по обслуживанию приложения из подкаталога (/приложение). Как было предложено здесь, я изменил свой конфиг nginx с этого:

место расположения / {
    корень /usr/share/nginx/html;
    try_files $uri $uri//index.html =404;           
}

к этому:

местоположение/приложение {
    псевдоним /usr/share/nginx/html;
    try_files $uri $uri/ /app/index.html =404;
}

Это вроде работает - я могу перейти на https://localhost/app и получить все статические файлы, как и ожидалось. Моя проблема заключается в перезагрузке URL-адресов, которые контролируются React Router (т.е. отправка на сервер nginx URL-адреса, который включает части после /приложение). Например, до изменения работали оба следующих пункта:

  • https://localhost <-- работает
  • https://localhost/auth/local <-- тоже работает

Первый просто вернул домашнюю страницу. Второй заставил nginx по умолчанию использовать index.html, а маршрутизатор React позаботился о внутреннем переходе на правильную страницу (/аутентификация/местный).

После изменения первый запрос работает, а второй выдает ошибку 404:

  • https://localhost/app <-- работает
  • https://localhost/app/auth/local <-- сбой с 404

Добавив некоторые отладочные заголовки, я вижу, что после изменения во 2-м случае nginx вообще не выполняет блок.

Что я делаю не так?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.