Google Cloud Storage跳转自有域名后缀丢失及路径报错咨询
问题原因
- 你当前使用的
<meta http-equiv="refresh">静态重定向规则不会传递URL哈希参数:哈希(#后内容)是浏览器端特有参数,不会发送到服务端,静态写死的跳转地址无法自动读取拼接该部分内容。 - 移除
#直接追加路径会触发NoSuchKey报错:GCS会把example.html/gOAdv.png整体作为存储对象的键去检索,你的桶内没有这个路径的对象,自然返回错误。
解决方案
方案1:保留哈希跳转逻辑,修改example.html内容
把你原来的静态跳转HTML替换为带JS动态拼接哈希的版本,即可自动保留#后的参数:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script> const targetDomain = 'http://myexampledomain.com/'; // 自动读取当前URL的哈希,拼接到目标域名后跳转 window.location.replace(targetDomain + window.location.hash); </script> </head> <body></body> </html>
配置完成后访问https://storage.googleapis.com/example-test/example.html#gOAdv.png会自动跳转到http://myexampledomain.com/#gOAdv.png,完美保留哈希参数。
方案2:不用哈希,直接传递路径(推荐)
如果不想用#格式,直接用原生路径跳转,不需要自己写HTML文件,直接开启GCS存储桶的整站重定向功能即可:
- 进入GCP控制台,打开你的
example-test存储桶的「设置」页,找到「网站配置」板块 - 选择「将整个存储桶重定向到另一个域名」,填写你的自有域名
http://myexampledomain.com - 保存配置后等待5-10分钟生效
该配置生效后,所有访问GCS桶的路径都会原样传递到你的自有域名,比如访问https://storage.googleapis.com/example-test/gOAdv.png会直接跳转到http://myexampledomain.com/gOAdv.png,不会再出现NoSuchKey报错。
内容的提问来源于stack exchange,提问作者elhsayni fouad
相关产品推荐
相关产品推荐

