当前位置: 首页 > 知识库问答 >
问题:

从部署在heroku上的react应用程序发送axios(api)请求

包翔
2023-03-14

在开发中,当我在localhost:3000上运行react服务器时。我使用Package.json中的proxy为后端服务器设置了baseurl,后端服务器运行在loacalhost:5000上。所以我只是将package.json中的proxy编辑为“localhost:5000”。因此从axios发送的所有api请求都将被定向到该URL。

axios.get("/name").then(res=>({...}))

与上述相同的请求将重定向到:

localhost:5000/name

在生产过程中,当我在heroku和Vercel这样的在线平台上部署应用程序时。通过axios从react-app发送的api请求都失败了。在Heroku/Vercel上部署时,我将代理更改为联机后端URL。

我想知道当一个react应用在线部署(最好是在Heroku/Vercel上)时,如何更改代理。这样我的api请求就不会失败。

Tech Stack:react用于前端,axios用于发送请求,firebase用于后端。后端也部署在Heroku上。

任何形式的支持都将不胜感激。即使有更好的平台来部署应用程序,我也可以切换到那个平台。

共有1个答案

云联
2023-03-14

您应该创建一个配置对象,并根据环境选择base_url。在local上,它将选择developmenturl,而在Heroku上,它将使用production

const configs = {
  development: {
    SERVER_URI: 'localhost:5000',
  },
  production: {
    SERVER_URI: 'HEROKU_URI',
  },
};

module.exports.config = configs[process.env.NODE_ENV];

还要像下面这样替换axios调用:

axios.get(`${config.SERVER_URI}/name`).then(res=>({...}))
 类似资料:
  • 当wirite https://tictactoesko.herokuapp.com/在浏览器中时,我重新输入Follow错误消息: 以下是travis.yml语言:node_js node_js:-node addons:sonarcloud:before_script:-npm start----silent&script:-npm run lint-npm test-sonar-scanne

  • 我正在Heroku上部署一个网站,但我在尝试运行“Heroku open”时收到了“应用程序错误”。 我相信我已经成功地将文件推送到Heroku中,这是我的“git推送heroku master”代码的一部分: 当我运行“heroku config-s | grep PATH”时,我得到了 我正在使用Ruby 1.9.3和Rails 4.0.0 文件夹 宝石环境 箱/轨道 垃圾箱/包裹 仓/耙

  • 我有一个在web容器tomcat上运行的java web应用程序。该web应用程序使用hibernate框架连接到DB,我需要将其从IntelliJ 14.0.2部署到heruko。所以我添加了maven框架,这就是pom。xml: 当设置maven的编辑配置并运行它时,我得到一条消息:[错误]在当前项目和插件组[org.apache.maven.plugins,org.codehaus.mojo

  • 我正在尝试部署一个运行在puma和jruby上的rails应用程序。程序文件如下所示 彪马的配置放在 配置/puma.rb 我对工人有条件初始化的原因是因为Heroku抱怨(或者可能是彪马)工人模式不适用于JRuby和Windows;无论如何, 我在heroku上注意到的奇怪行为是(与我的本地环境不同),集群Puma实例启动时没有任何问题,并选择两个不同的端口来绑定,即3000和5000。 但是,

  • 我的应用程序似乎总是在部署后崩溃。 2015-07-21T13:29:28.127452+00:00 Heroku[router]:at=error code=h10 desc=“应用程序崩溃”method=get path=“/api/v1/sessions”host=calm-hamlet-5165.herokuapp.com request_id=69711e3a-913e-45ed-b4b