我有一个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吗?
小智 13
pathPrefixGatsbyJS中的配置意味着您的网站的每个链接都将被添加/environment/test(请参阅文档),但这并不意味着在运行网站的容器上,页面实际上是在此路径上托管的.在你的情况下,似乎并非如此.
这意味着当通过Traefik连接PathPrefixStrip时,在浏览器中单击链接时:
/environment/test/page/page/因此它可以通过页面进行回答通过Traefik连接时PathPrefix:
/environment/test/page/environment/test/page/因此找不到页面.因此,您将pathPrefix网站的设置与提供相同网站的路径混淆.
因此,目前情况的替代方案是服务于traefik 下的网站/environment/test/并PathPrefix与其一起使用.