我在同一台Linux服务器上运行前端(React)和后端(nodejs)。
在我的前端,我有一个fetch
请求后端,我必须指定为fetch('http://10.25.248.238:3001/')
,IP(本地因为此站点供内部公司使用)和端口后端。
有没有办法避免对这个后端IP地址进行硬编码,以便在前端和后端都移动到另一台服务器时仍能正常工作?
我尝试了http://localhost:3001
,但实际上是尝试从网站访问者的本地主机获取。 fetch('/')
也没有工作。
注册域名不合适,因为此网站仅供内部使用。
答案 0 :(得分:2)
一个简单的解决方案是在Webpack设置中定义环境变量并将其传递给React应用程序。
您可以创建dev.webpack.config.js和prod.webpack.config.js,并在每个配置文件中使用webpack.DefinePlugin:
new webpack.DefinePlugin({
BASE_URL: 'YOUR_SERVER_BASE_URL'
});
在您的React App中,您可以使用process.env.BASE_URL引用它们。例如:
let url = process.env.BASE_URL + '/user';