【问题标题】:Proxying api requests in production for React/Express app在生产环境中为 React/Express 应用代理 api 请求
【发布时间】:2021-12-25 13:43:49
【问题描述】:

我正在使用分离的存储库(后端和前端)开发一个 MERN 堆栈项目,在 开发 环境中,我使用“代理”将服务器 API 与 react 连接起来,它是完美运行。

//package.json in react
{
...
"proxy": "http://localhost:8000/",
...
}

但是当我切换到生产环境并用部署的链接替换代理值时,不再支持“代理”。我对其进行了搜索,发现它仅适用于开发环境,我尝试了在互联网上找到的几种解决方案,但没有运气!

顺便说一句,我使用 Heroku 部署后端,使用 Netlify 部署前端。目前,它们都部署没有任何错误,但后端和前端之间没有连接。

【问题讨论】:

  • 这能回答你的问题吗? Create-React-App Proxy in Production Build
  • 谢谢,但总的来说并没有太大帮助......我已经为这个问题写了一个详细的答案......希望它也能帮助其他编码人员:)

标签: reactjs deployment proxy mern netlify


【解决方案1】:

在生产中我们不能使用(代理)。相反,我们可以在前端为后端 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`);

现在您已准备好部署...

【讨论】:

    猜你喜欢
    • 2023-02-06
    • 2018-03-06
    • 1970-01-01
    • 2019-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    相关资源
    最近更新 更多