【问题标题】:Not able to provide default root object in load balancer cloud storage bucket backend in GCP无法在 GCP 的负载均衡器云存储桶后端提供默认根对象
【发布时间】:2021-08-08 18:36:31
【问题描述】:

我们正在尝试使用负载均衡器通过云 CDN 从云存储中为 Angular 项目提供服务。 我们已经配置了一个负载均衡器和一个云存储桶后端,它指向具有 Angular 项目构建工件的静态内容。我们可以通过点击负载均衡器 http:///index.html 来访问 Angular 项目,该负载均衡器又会重定向到路由路径为“/dashboard”的 Angular 项目仪表板。

现在,当我刷新时,输出出现如下所示的错误

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
<Code> NoSuchKey </Code>
<Message> The specified key does not exist. </Message>
</Error>

它似乎正在寻找不是我们项目的文件名/dashboard 文件。

有什么办法可以将默认根设置为“index.html”来修复它?

【问题讨论】:

    标签: angular google-cloud-platform cdn


    【解决方案1】:

    您必须将 angular 设置为代理。最干净的负载均衡器是用于 angular 或 kemp 的 nginx。我可以掠夺别人的作品并像其他人一样声称它是我自己的,或者我只是在谷歌上搜索了许多文章中的一篇——我不隶属于这些人,也不认识这些人。它非常简单,但如果您将任何 api 调用到代理地址,您可能必须从客户端/服务器端渲染更改资源 url。

    https://www.techiediaries.com/angular-10-proxy-configuration-angular-json/

    https://www.journaldev.com/27234/nginx-reverse-proxy-node-angular

    【讨论】:

    • 我可以访问 http:// 上的静态网页。链接转到 /home。如果我刷新网页,页面会显示 XML 错误。我怀疑负载平衡器映射存在一些问题。请看看你是否能找到解决办法。
    【解决方案2】:

    https://cloud.google.com/storage/docs/gsutil/commands/web 您可以使用它来设置云存储桶的默认主页和错误页面,以防桶中不存在错误页面文件,从而导致 XML ERROR。

    【讨论】:

    • 通过上述解决方案,我可以绕过错误,刷新后我可以将页面重定向到“index.html”,将页面指向“index.html”。但是状态码还是显示“404 not found”。
    猜你喜欢
    • 2020-03-14
    • 2021-03-06
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    • 2019-09-24
    • 1970-01-01
    • 1970-01-01
    • 2021-08-31
    相关资源
    最近更新 更多