Google Cloud负载均衡器指向存储桶仅返回index.html的问题排查
Google Cloud LB映射Cloud Storage静态资源路径问题解决方法
检查Cloud Storage存储桶配置
- 登录GCP控制台,找到目标存储桶,进入「网站」标签页
- 确认「主页面后缀」设为
index.html,但不要将404错误页面也设为index.html(这会导致所有未匹配到的路径返回index.html,包括存在的静态资源) - 核实
assets/index-2898da6d.js文件确实存在,且权限设置为公开可读(或通过LB后端服务配置了合法访问权限)
- 确认「主页面后缀」设为
调整Load Balancer路径映射规则
- 进入GCP负载均衡控制台,找到对应LB实例,查看「URL映射」配置
- 若当前规则是将所有路径(
/*)直接指向存储桶的index.html,需修改为:- 根路径(
/)映射到存储桶的index.html - 其余路径(
/*)设置为完整路径透传,让LB将请求路径原样转发给存储桶,确保/assets/xxx.js这类请求能匹配到存储桶内对应路径的文件
- 根路径(
- 确保使用的是「后端桶」(Backend Bucket)的原生路径匹配,而非强制重定向或固定返回index.html
- 若当前规则是将所有路径(
验证存储桶直接访问
- 直接通过存储桶域名访问目标文件:
curl https://storage.googleapis.com/[你的桶名]/assets/index-2898da6d.js -v- 若返回404,优先排查文件是否存在、路径拼写是否一致、权限是否正确
清除LB缓存
- GCP LB默认会缓存静态资源,修改配置后需等待5-10分钟生效;若配置了CDN,可手动触发缓存刷新
- 再次用
curl https://me.com/assets/index-2898da6d.js -v验证,查看响应头确认缓存状态
内容的提问来源于stack exchange,提问作者Jose Gleeson
相关产品推荐
相关产品推荐

