正在为 React/Express 个应用代理生产中的 api 个请求
Proxying api requests in production for React/Express app
我正在使用分离的存储库(后端和前端)开发 MERN 堆栈项目,在 开发 环境中,我使用“代理”连接服务器 API 与反应,它工作得很好。
//package.json in react
{
...
"proxy": "http://localhost:8000/",
...
}
但是当我切换到 production 环境并将代理值替换为已部署的 link 时,不再支持“proxy”。我搜索了一下,发现它只适用于开发环境,我尝试了在互联网上找到的几种解决方案,但没有成功!
顺便说一句,我正在用 Heroku 部署后端,用 Netlify 部署前端。目前两者都部署无误,但后台和前台之间没有连接。
在生产中我们不能使用(代理)..相反,我们可以在前端为后端设置一个变量URL,反之亦然。
让我们从后端配置开始:
app.use(cors({
origin: "frontend_URL",
credentials: true
}));
现在,让我们看看前端配置:
在您喜欢的任何位置设置变量:
export const API_URL = "URL";
在您调用 API 的文件中:
import axios from "axios";
import { API_URL } from "./your/path";
axios.defaults.withCredentials = true;
axios.get(`${API_URL}/your/route`);
现在您可以部署了...
我正在使用分离的存储库(后端和前端)开发 MERN 堆栈项目,在 开发 环境中,我使用“代理”连接服务器 API 与反应,它工作得很好。
//package.json in react
{
...
"proxy": "http://localhost:8000/",
...
}
但是当我切换到 production 环境并将代理值替换为已部署的 link 时,不再支持“proxy”。我搜索了一下,发现它只适用于开发环境,我尝试了在互联网上找到的几种解决方案,但没有成功!
顺便说一句,我正在用 Heroku 部署后端,用 Netlify 部署前端。目前两者都部署无误,但后台和前台之间没有连接。
在生产中我们不能使用(代理)..相反,我们可以在前端为后端设置一个变量URL,反之亦然。
让我们从后端配置开始:
app.use(cors({
origin: "frontend_URL",
credentials: true
}));
现在,让我们看看前端配置:
在您喜欢的任何位置设置变量:
export const API_URL = "URL";
在您调用 API 的文件中:
import axios from "axios";
import { API_URL } from "./your/path";
axios.defaults.withCredentials = true;
axios.get(`${API_URL}/your/route`);
现在您可以部署了...