我正在研究一种使用 GCS、负载均衡器和 CDN 在 Google Cloud 上部署 Angular 或 React Web 应用程序的方法。
我已经使用urlRewrite设置了 LB 和 GCS ,但是由于 LB 不允许仅完全 URL 重写pathPrefixRewrite,因此我无法将所有请求重定向到/index.html
我想实现与 firebase 托管相同的功能,您可以在其中指定重写规则
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
Run Code Online (Sandbox Code Playgroud)
另一种选择是将 404 页面设置为index.html
,但这会导致404 status code
服务器返回,这是我不喜欢的。
负载均衡器是否可以实现这一点,因为它们不支持完全重写?
load-balancing google-cloud-storage reactjs google-cloud-platform angular
到处都有有关如何执行此操作的指南和问题,但从来没有真正令人满意的具体答案。基本上,我想知道是否可以在GCP Cloud Storage中托管静态SPA(HTML / CSS / JS)。
主要警告是SPA具有自己的路由系统(ReactRouter),因此我希望所有路径都由index.html提供服务。
大多数指南会告诉您将ErrorDocument设置为index.html
而不是404.html
。尽管这是一个聪明的骇客,但它会使站点的HTTP响应代码为404,这对于SEO或监视工具来说是一场灾难。这样就可以了,只要我可以更改响应代码即可。
有什么办法可以使这项工作吗?我也已经启动并运行了CloudFlare,但是据我所知,没有办法修剪路径或从那里更改响应状态。