我正在由mkdocs
生成的Google云存储上托管一个静态网站。但是,我遇到的错误不应与此库相关。
我已设置权限,可以在以下位置查看该网站
https://storage.googleapis.com/<bucketname>/<folder>/index.html
这很好,但是它无法打开此URL:
https://storage.googleapis.com/<bucketname>/<folder>/
它不认识它应该获取index.html
文件。
对于索引页面而言,这并不是什么大问题(我只能将用户指向该页面),但对于网站上的所有其他链接而言,这是一个巨大的问题。使用此结构生成一个子文件夹:
site/planning
├── week1
│ └── index.html
├── week2
│ └── index.html
├── week3
│ └── index.html
└── week4
└── index.html
google storage docs对可能发生的事情有一些启示。但是,即使应用了他们的建议,它也不起作用。
> gsutil web set -m index.html gs://<bucketname>/
Setting website configuration on gs://<bucketname>/...
所以我正在寻找解决方案。我的想法是:
index.html
生成的。 非常感谢您的帮助。
答案 0 :(得分:1)
在GCS部分,此行为在the docs中进行了解释:
网站配置仅用于解释定向到 c.storage.googleapis.com的CNAME别名。(即在 主机名是一个自定义域)。例如,仅请求 www.example.com显示索引页面。
因此,对Cloud Storage域的请求的API行为,例如 storage.googleapis.com/www.example.com被保留。例如你 您可以继续在www.example.com存储桶中列出对象 将用于任何其他存储桶。对于www.example.com存储桶, 您收到的对象列表包括404.html和index.html。
这主要意味着通过API地址访问对象时没有重定向或特殊行为,因为这会导致API不一致。
当然,GCS中的问题是您没有使用自定义域。
在mkdocs部分,看起来use_directory_urls:false
可以解决问题。