Задать вопрос
@gsaw

Почему так странно работает basePath в next.js?

Я путыюсь задеплоить next.js приложение в кластере kubernetes. Оно работает в контейнере, слушает на порту 8100 внутри контейнера. В ingres создан конфиг, который запросы по пути /app/v1/vamos-client перенаправляет на этот сервис с приложением.

Если я обращаюсь по внешнему URL-у к приложению, то получаю первую страницу, а все ассеты из _next не грузятся с 404.

Если я в next.config.js добавляю assetPrefix: '/app/v1/vamos-client' то все ассеты грузятся, но все ссылки без префикса '/app/v1/vamos-client'

Если я добавлю в next.config.js конфиг еще и basePath: '/app/v1/vamos-client', то опять перестают грузиться ассеты.

Не понимаю просто, что ему надо. Почему он не хочет работать с basePath. Причем если я локально контейнер собираю и запускаю просто в докере, то приложение работает с любой комбинацией basePath и assetPrefix.

может там какой то старый ingress, которые переписывает урлы? Кластер в облаке, к нему у меня прямого доступа нету. Я просто коммичу код на гитхабе, а он сам собирает и деплоит. Просто замучался уже.
  • Вопрос задан
  • 108 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
@gsaw Автор вопроса
Дело было в ingress контроллере и кривом конфиге. Я у себя тестировало с ingress-nginx, а на сервере был traefik. А в конфиге был установлен PrefixStrip, то-есть до бэкенда /app/v1/vamos-client не доходил, тот получал только /

Убрал этот Strip и все заработало как и ожидалось.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы