Я пытаюсь обслуживать приложение и файлы, связанные с веб-пакетом, из контекстного пути. Файл конфигурации Nginx выглядит следующим образом:
nginx.conf
сервер {
слушать 80;
корень /usr/share/nginx/html;
индекс index.html index.htm;
место расположения / {
try_files $uri $uri/ /mfeexample/index.html;
}
местоположение /mfeexample/ {
try_files $uri $uri/ /mfeexample/index.html;
}
}
Докерфайл
# Среда сборки
ОТ узла: 14.2.0-alpine как сборка
# Рабочий каталог
РАБОЧИЙКАТАЛОГ /приложение
#Копирование файлов пакета узла в рабочий каталог
КОПИРОВАТЬ пакет.* .
#Установка зависимости приложения
ЗАПУСК npm install --silent
#Скопировать весь код
КОПИРОВАТЬ . .
#RUN Производственная сборка
ЗАПУСК npm запустить сборку
# производственная среда
ОТ nginx: стабильный-альпийский
# Развернуть созданное приложение на сервере Nginx
# /usr/share/nginx/html — это статический каталог Nginx, используемый для обслуживания приложения
КОПИРОВАТЬ --from=build /app/build /usr/share/nginx/html/mfeexample
# Удалите конфигурацию Nginx по умолчанию в контейнере Nginx.
ЗАПУСК rm /etc/nginx/conf.d/default.conf
# Применяем новый файл конфигурации
скопируйте nginx/nginx.conf /etc/nginx/conf.d/default.conf
# Выставляем приложение на порт 80
ЭКСПОЗИЦИЯ 80
# Запустить сервер Nginx
CMD ["nginx", "-g", "демон выключен;"]
Теперь, глядя на вкладку сети в браузере, я обнаружил, что все файлы обслуживаются по адресу http://localhost:3000/mfeexample/, это именно то, что я хотел. Однако, когда я пробую вложенный маршрут, он ломается, вложенный маршрут я имею в виду http://localhost:3000/mfeexample/customer/, снова смотрю на вкладку сети, nginx ищет файлы в http://localhost:3000/mfeexample/ customer/index.html, но я хочу, чтобы nginx всегда находил файлы с http://localhost:3000/mfeexample.
PS: Пожалуйста, имейте в виду, что я новичок в nginx, и я использовал метод проб и ошибок, чтобы добраться до этого момента.
Заранее спасибо.