У меня есть статический сайт GatsbyJS, созданный с помощью --prefix-paths. pathPrefix установлен на /environment/test в gatsby-config.js. Он развернут в рое докеров, на котором запущен Traefik.
Добавление следующей метки к сервису заставляет все работать нормально:
traefik.frontend.rule=PathPrefixStrip:/environment/test
Затем я могу перейти к /environment/test и щелкнуть по моему сайту GatsbyJs.
Однако мне это кажется странным, поскольку серверная часть построена с префиксом пути.
Добавление следующего ярлыка не работает:
traefik.frontend.rule=PathPrefix:/environment/test
Разве это не должно работать с PathPrefix вместо PathPrefixStrip?





Конфигурация pathPrefix в GatsbyJS означает, что к каждой ссылке вашего веб-сайта будет добавляться /environment/test (см. документация), но это не означает, что в контейнере, в котором запущен веб-сайт, страница фактически размещена по этому пути.
В вашей ситуации, похоже, это не так.
Это означает, что при подключении через Traefik к PathPrefixStrip, в браузере вы переходите по ссылке:
/environment/test/page/page./, поэтому он отвечает страницейПри подключении через Traefik с PathPrefix:
/environment/test/page/environment/test/page./, поэтому страницу не находит.Следовательно, вы путаете настройку pathPrefix веб-сайта с путем, с которого обслуживается тот же самый веб-сайт.
Таким образом, альтернативой нынешней ситуации было бы обслуживание веб-сайта под /environment/test/ и использование PathPrefix с traefik.