我尝试使用GCP和Google云存储服务静态网站。我已完成此处指定的所有内容https://cloud.google.com/storage/docs/hosting-static-website
说我有以下文件结构:
- index.html
- folder
- index.html
- another.html
我输入www.example.com/folder
。
重定向到www.example.com/folder/index.html
=> index.html是不受欢迎的
但是,如果我输入www.example.com/folder/
,它就不会重定向并透明地正确提供index.html页面。
如何防止第一种行为?或者自动添加尾部斜杠?
谢谢!
答案 0 :(得分:1)
Firebase Hosting可能比使用存储桶更容易,因为可以在其中定义rewrite rules。
答案 1 :(得分:0)
您应该可以相应地将MainPageSuffix设置为index.html。有关详细信息,请查看public documentation link中提供的其他说明。参考示例可以在同一文档中找到。
语法:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="rack">
<h1>Live Validat.ion</h1>
<input type="text" placeholder="Enter email address">
<div id="input-status">
</div>
</div>
答案 2 :(得分:0)
根据https://cloud.google.com/storage/docs/hosting-static-website,此行为是有意的。至于是否令人满意,这是一个更大的问题。
例如,假设您将静态网站的MainPageSuffix设置为 index.html。此外,假设您的目录中没有名为directory的文件 桶www.example.com。在这种情况下,如果用户请求URL http://www.example.com/directory,Cloud Storage尝试为 文件www.example.com/directory/index.html。如果该文件也没有 存在,Cloud Storage返回错误页面。
MainPageSuffix也控制用户请求时提供的文件 顶级网站。继续上面的示例(如果用户请求) http://www.example.com,Cloud Storage尝试提供文件 www.example.com/index.html
不幸的是,我不知道一种自动添加尾部斜杠的方法。也许您可以在index.html上添加一条消息,以达到“您是要去http://example.com/thisfolder/而不是http://example.com/thisfolder/index.html的意思”的意思,但这是一种不可行的解决方法。
答案 3 :(得分:0)
如果您遵循上面的教程,那么您必须具有app.yaml文件来描述您的路由规则。这是一个答案:
答案 4 :(得分:-1)
检查一下
https://cloud.google.com/storage/docs/gsutil/commands/web#description
main_page_suffix适用于存储桶的每个子目录。例如,将main_page_suffix配置为index.html,对http://www.example.com的GET请求将检索http://www.example.com/index.html,对http://www.example.com/photos的GET请求将检索http://www.example.com/photos/index.html。>