通过谷歌云存储和负载均衡器服务反应应用程序,将任何网址映射到索引?
Posted
技术标签:
【中文标题】通过谷歌云存储和负载均衡器服务反应应用程序,将任何网址映射到索引?【英文标题】:Serving react app via Google Cloud Storage and loadbalancer, mapping any urls to index? 【发布时间】:2021-09-20 11:49:35 【问题描述】:我正在使用 Google Cloud Storage 和 Loadbalancer 设置 React 应用程序前端。在构建过程中,index.html 和 javascript 文件被上传到云存储中。负载均衡器指向后端存储桶。如果我转到 http://(loadbalancerip)/index.html
,我现在可以访问 react 应用程序我想对所有路由做出反应,并且我还希望我们的用户通过任意路径(例如 http://(loadbalancerip)/user/details)访问站点。有没有办法使用 GCP 负载均衡器来实现这一点?基本上我希望它始终提供“index.html”,无论用户访问的路径如何。
【问题讨论】:
【参考方案1】:我向 GCP 支持确认,很遗憾它不受支持。这是一个开放的功能请求https://issuetracker.google.com/issues/194125076
【讨论】:
【参考方案2】:您可以通过在存储桶上配置网站设置来实现此目的。配置 404 页面以提供 index.html。当用户点击任何随机路线时,将为其提供 index.html。我能看到的唯一缺点是您确实在控制台中收到 404 错误,但这似乎根本不影响操作。
我的负载均衡器只配置了默认规则,为存储桶后端提供所有流量(没有额外的 url 映射规则)。
【讨论】:
【参考方案3】:假设您使用的是 HTTP(S) 外部负载均衡器,您要查找的是 URL rewrite。
【讨论】:
此链接显示“重要提示:重写按原样添加到路径。不支持完整路径重写。HTTP(S) 负载平衡仅实现路径前缀重写”。你能提供重写配置的例子,让我把所有东西都重写为 index.html 吗?以上是关于通过谷歌云存储和负载均衡器服务反应应用程序,将任何网址映射到索引?的主要内容,如果未能解决你的问题,请参考以下文章