reactjs Google Cloud Storage提供的应用程序中的React Router

1cklez4t  于 2023-06-22  发布在  React
关注(0)|答案(1)|浏览(118)

我想从静态文件存储(Google Cloud Storage,AWS等价物是S3)提供React应用程序。
在过去,我只将React应用部署到NGINX服务器(或NGINX容器),在那里我可以配置所有请求指向index.html,而不管请求的路径是什么,这样React Router就可以在客户端处理路由。
我很难理解这将如何在静态文件存储中工作,只需运行npm run build并将构建的应用程序上传到云存储。
示例:据我所知,如果您请求<domain>/profile,它将在静态文件存储中查找名为“profile”的文件,如果不存在,则返回存储提供商的404页面。但我希望这是由React Router处理的,这意味着这个请求在技术上仍然返回index.html页面,然后客户端的JavaScript查看URL并呈现配置文件页面组件或软404页面组件,我可以从我的React应用程序中自定义。

ie3xauqp

ie3xauqp1#

好吧,6个月后,我现在有了答案,我分享它来帮助任何像我一样被卡住的人。
当配置GCS存储桶以服务于静态站点时,您可以选择将哪个文件用作索引页,以及在404上服务的文件。事实证明,您可以很容易地在单页应用程序(使用任何JavaScript框架)上实现客户端路由,方法是配置bucket,将所有返回404页的流量指向相同的index.html文件。这样,它仍然会呈现包含所有客户端路由逻辑的“单个页面”,并且它查看的路径将在URL中!
TLDR;将index.html设置为您的自定义404页面。

相关问题