GCP - 静态托管 - 重定向到/index.html

时间:2017-12-20 16:57:20

标签: redirect google-cloud-platform google-cloud-storage

我尝试使用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页面。

如何防止第一种行为?或者自动添加尾部斜杠?

谢谢!

5 个答案:

答案 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文件来描述您的路由规则。这是一个答案:

Angular 7 Routing in Google Cloud App Engine not working

答案 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