0

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

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

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

如果我对 url subdir/index.html 进行 curl 我会得到 HTML

铲斗结构示意图

4

2 回答 2

1

我不确切知道您是如何测试子文件夹的,但我认为此链接可以帮助您解决在 GCS 上加载子文件夹时出现错误 404的问题。此外,您可能必须在这里查看子目录的工作原理

于 2019-07-31T22:35:46.647 回答
0

基于子目录在 GCS 上的工作方式,当浏览器请求 URLhttp://www.example.com/dir时,它将被重定向 (301) 到提供的http://www.example.com/dir/index.html内容上的对象。

http://www.example.com/dir/index.html我的假设是Vue (vue-router) 上没有路由。所以它会被抛出到 Not Found 404 页面。

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

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

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

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

于 2019-09-18T08:59:52.070 回答