找不到子目录页面的静态站点托管在Google Cloud Storage Bucket上

时间:2019-07-31 14:04:11

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

我正在使用Loadbalancer在Google Cloud Storage Bucket上设置静态站点。使用Gridsome生成网站,然后将dist文件夹保存在存储桶中。

我已经在[文档]中设置了gsutil的索引和错误:https://cloud.google.com/storage/docs/gsutil/commands/web

现在,我面临着一个问题,即用于访问子目录的每个URL如何重定向到dir / index.html。这是理想的行为,dir / index.html页面甚至存在于存储桶中。但是我仍然得到404-找不到。

如果我卷曲url subdir / index.html,我会得到HTML

Image of bucket structure

2 个答案:

答案 0 :(得分:1)

我不完全知道您如何测试子文件夹,但是我认为此链接可以帮助您解决问题Error 404 when loading subfolder on GCS。另外,您可能必须在How subdirectories work这里看看。

答案 1 :(得分:0)

基于GCS上的How subdirectories work,当浏览器请求URL http://www.example.com/dir时,它将重定向(301)到所提供内容的对象http://www.example.com/dir/index.html

我的假设是Vue(vue路由器)上没有路由http://www.example.com/dir/index.html。因此它将被扔到“找不到404”页面。

简单的解决方案是尝试更改所有子目录的链接

http://www.example.com/dirhttp://www.example.com/about

http://www.example.com/dir/http://www.example.com/about/

当您请求子目录url或重新加载浏览器时,它不会重定向到404页面。但是我们都知道这不是最佳实践。