问题描述
我知道有一些关于这个问题的线索,但他们都有 2019 年的答案,其他行为和功能都可用,例如,当时你甚至无法添加存储桶作为后端服务负载均衡器。
我正在尝试从 mydomain.com/storage/public 的存储桶 A 和来自 mydomain.com/storage/private 的存储桶 B 提供文件,这不是问题。
我没有成功完成的是重写路径,这样我就不必将所有文件添加到嵌套在文件夹 /storage/public
中的存储桶 A 和存储桶 B 中的 /storage/private
- - 而是从桶的根部为它们服务。
我添加了以下不起作用的路径和主机重写规则:
host:
path: /*
我假设这会告诉它将 mydomain.com/storage/public/myfile.png 重写为 mydomain.com/myfile.png,但这似乎不起作用。
解决方法
据我所知,您可能在公共文件夹中有一个文件,例如 xyz、.png,因此您的 URL 看起来像 mydomain.com/storage/public/xyz.png
并希望提供根文件夹中的文件,即 mydomain.com/storage/xyz.png。您还尝试重写路径,但未能这样做。让我知道我是否正确捕获了您的信息。
我建议您按照以下步骤修改配置: 单击您的负载均衡器上的编辑 更改主机和路径规则:
- 在屏幕的左栏中,单击主机和路径规则。
- 选择高级主机和路径规则(URL 重定向、URL 重写)。
- 点击包含非默认路径规则的行,
- 点击铅笔图标编辑 /storage/* Route traffic to a single backend:backend name
- 在路径下,删除 /storage/* 并添加 /*。
- 在操作下,选择将流量路由到单个后端。
- 点击加载项操作(URL 重写)。
- 将主机重写留空。
- 在路径前缀重写下,输入 /storage/。
- 在后端下,选择后端名称并点击保存并点击完成。
- 如果一切正常,请点击更新以更新您的 HTTP 负载平衡器。
有关详细信息,请参阅 the documentation。