gpt4 book ai didi

traefik - 为什么 PathPrefixStrip 可以工作而 PathPrefix 不能?

转载 作者:行者123 更新时间:2023-12-02 18:51:37 29 4
gpt4 key购买 nike

我有一个使用 --prefix-paths 构建的 GatsbyJS 静态站点。 pathPrefixgatsby-config.js 中设置为 /environment/test。它被部署到运行 Traefik 的 docker swarm 中。

将以下标签添加到服务中可以使一切正常运行:traefik.frontend.rule=PathPrefixStrip:/environment/test

然后我可以浏览到 /environment/test 并在我的 GatsbyJs 站点中单击。

但是我觉得很奇怪,因为后端是使用路径前缀构建的。

添加以下标签不起作用:traefik.frontend.rule=PathPrefix:/environment/test

它不应该使用 PathPrefix 而不是 PathPrefixStrip 吗?

最佳答案

GatsbyJS 中的 pathPrefix 配置意味着您网站的每个链接都会以 /environment/test 开头(参见 documentation ),但这并不意味着在运行网站的容器上,页面实际上托管在该路径上。根据您的情况,似乎并非如此。

这意味着当通过 Traefik 与 PathPrefixStrip 连接时,在浏览器中单击链接时:

  1. 浏览器请求/environment/test/page
  2. Traefik 将此转换为对 /page 容器的请求
  3. 容器实际上在 / 上提供文件,因此它会通过页面进行响应

通过 Traefik 使用 PathPrefix 连接时:

  1. 浏览器请求/environment/test/page
  2. Traefik 将此转换为对 /environment/test/page 容器的请求
  3. 容器实际上在 / 上提供文件,因此它找不到该页面。

因此,您将网站的 pathPrefix 设置与提供同一网站的路径混淆了。

当前情况的替代方案是在 /environment/test/ 下提供网站服务,并将 PathPrefix 与 traefik 结合使用。

关于traefik - 为什么 PathPrefixStrip 可以工作而 PathPrefix 不能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50346047/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com