从同一台服务器上的本地主机获取

问题描述:

我在同一台Linux服务器上同时运行前端(React)和后端(nodejs)。从同一台服务器上的本地主机获取

在我的前端,我有一个fetch请求到后端,我必须指定为fetch('http://10.25.248.238:3001/'),IP(本地,因为这个站点是供公司内部使用的)和后端的端口。

有没有办法避免对这个后端IP地址进行硬编码,以便在前端和后端都移动到另一台服务器时仍能正常工作?

我试过http://localhost:3001但实际上试图从本地访问者的网站获取。 fetch('/')也没有工作。

注册域名并不合适,因为本网站仅供内部使用。

+0

当你说“前端和后端被移动到另一台服务器”你的意思是他们永远是在同一台机器上或在后端将被移动到一台机器和前到另一个? –

+0

前端和后端都将始终位于同一台机器上。 – Avery235

一个简单的解决方案是在您的Webpack设置中定义环境变量并将其传递到React应用程序。

您可以创建dev.webpack.config.js和prod.webpack.config.js并在每个配置文件中,使用webpack.DefinePlugin:

new webpack.DefinePlugin({ 
    BASE_URL: 'YOUR_SERVER_BASE_URL' 
}); 

而在你的应用程序做出反应,你可以参考他们与process.env.BASE_URL。例如:

let url = process.env.BASE_URL + '/user'; 
+0

我应该在哪里放这两个文件?我还有什么要做的?不熟悉webpack,我用'create-react-app'。 – Avery235

+0

看来Facebook团队不会为开发人员提供更多自由来扩展当前的create-react-app。检查这篇文章:https://github.com/facebookincubator/create-react-app/issues/99我认为创建一个React应用程序的最好方法是通过一个着名的yeoman生成器或一些很好的样板例子,以便您拥有更多控制设置,环境等。 – MattYao

+0

我只是声明2个变量,并根据'process.env.NODE_ENV ===“开发”'选择'。但是,当前端和后端都移动到新服务器时,必须手动编辑服务器url。 – Avery235