我一直在尝试在子目录上运行我的react应用程序。我正在使用负载平衡器(ALB)来重定向我的应用程序上的"目录"。从"https://mydomain/directory"但是我的应用程序没有找到构建的静态文件
在package.json中添加目录。"homepage"/directory"在react-router-dom上增加basename在我的网络index.html正在寻找" #####/directory/static/js"CSS也一样
我只能通过重定向静态请求到我的react构建来运行我的react构建,但这不是一个好的解决方案,因为我想在我的ALB上运行3个应用程序,这将导致我在构建中手动更改我的资产文件夹名称,显然不想这样做。我一直在应用多种解决方案,但找不到合适的解决方案,请有人帮助在这😑
ALB不进行重定向,也不进行任何类型的请求路径重写,它只是将请求转发给目标。你需要设置你的服务器,所以它实际上是从该文件夹中为网站提供服务,换句话说,在构建中更改你的资产文件夹名称。
如果你不想这样做,你需要考虑其他的AWS解决方案,比如CloudFront,它可以将请求代理到源服务器上的不同路径。
我有一个场景,发布react应用程序与nginx在docker与ci/cd。我设置了一个单独的快速服务器来提供应用程序文件并解决了这个问题。以下是server.js
的存储库概要,可能会有所帮助:
https://github.com/mkhizerali/store-pwa/blob/master/express/index.js