Reactjs 如何为2个不同的子域支持react js应用程序
我有点难以支持react js来支持2个不同的子域。以下是我需要我的应用程序支持的子域Reactjs 如何为2个不同的子域支持react js应用程序,reactjs,subdomain,Reactjs,Subdomain,我有点难以支持react js来支持2个不同的子域。以下是我需要我的应用程序支持的子域 www-dev.somedomain/apps/myapp app-dev.somedomain/myapp 如您所见,react应用程序路径也随着子域的变化而变化。我已经在我的.env文件中定义了PUBLIC_URL和REACT_APP_路径,如下所示 REACT_APP_PATH=/myapp GENERATE_SOURCEMAP=false PUBLIC_URL=/myapp 使用以上环境变量ap
- www-dev.somedomain/apps/myapp
- app-dev.somedomain/myapp
REACT_APP_PATH=/myapp
GENERATE_SOURCEMAP=false
PUBLIC_URL=/myapp
使用以上环境变量app-dev。。。URL正在运行。如果我更改到apps/myapp
的路径,则www子域正在工作。我需要一种同时支持两个子域的方法
我怎样才能做到这一点?不行,你的React应用程序将被编译成静态HTML、JS和CSS文件,你唯一可以向构建工具传递参数的时间是在构建之前,这就是你现在正在做的。一旦建筑完工,就不能再改变了
可以使用不同的环境变量编写两个shell脚本。然后调用它们中的每一个将构建不同的web应用。最后,我通过以下步骤解决了这个问题;我使用Nginx重定向到同一个主机。我遇到的问题是路径
www-dev.somedomain/apps/myapp
app-dev.somedomain/myapp
/
。然后应用程序找不到静态文件,因为路径与域不同。所以为了解决这个问题,我做了如下操作
REACT_APP_PATH=/myapp
GENERATE_SOURCEMAP=false
PUBLIC_URL=/myapp
- 首先,从我的env文件中删除
。然后应用程序文件将托管在PUBLIC\u URL
位置/
- 将
属性添加到homepage
文件中。添加主页将提供与index.html相关的资产。阅读更多关于主页的信息李>package.json
- 由于应用程序使用内部路由,我添加了简单的Nginx规则来重写静态文件的位置,如下所示。
rewrite/static/(.*)$/static/$1 break代码>
这解决了我支持两个DOAMIN的问题。我找到了一篇文章,但我不确定它是否适用于我的案例@PubuduJayasanka it让服务器重新映射请求url。也许它会起作用,我用homepage属性和一个简单的Nginx重写规则解决了这个问题。谢谢你的帮助