首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Heroku“无效主机标题”主机配置中的ReactJS应用程序?

Heroku“无效主机标题”主机配置中的ReactJS应用程序?
EN

Stack Overflow用户
提问于 2018-03-08 12:05:19
回答 2查看 23.5K关注 0票数 15

我正试着把我的React app放在Heroku上。整个项目包括一个接口(express)和一个客户端(ReactJS)。我已经把我的API放在heroku上了。但是当我将我的客户端放在Heroku上时,它显示构建成功。但是当我open它时,它显示的是Invalid Host header

我在谷歌上搜索这个问题,很多人都告诉我要配置HOST。但是他们用的是webpack。我用create-react-app构建它,并由npm start运行它。我想知道如何以最简单的方式解决这个问题。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2019-02-15 10:47:08

如果出于任何原因,您试图在没有服务器的情况下部署客户端,请确保删除:

代码语言:javascript
复制
"proxy": "http://localhost:5000"

从客户端的package.json ..

编辑2019年7月:

Create React App 2.0改变了我们定义代理的方式。要确定您使用的是哪个版本,请检查您的客户端package.json:"react-scripts“是否大于"2.x.x”

现在,在client/目录中安装此软件包:

代码语言:javascript
复制
npm install http-proxy-middleware --save

在客户端/src/目录中创建setupProxy.js文件。不需要在任何地方导入此文件,CRA会查找具有此名称的文件并加载它。

添加代理有不同的方法:

选项1:

const { createProxyMiddleware }= require('http-proxy-middleware');

代码语言:javascript
复制
module.exports = function(app) {
  app.use(
    createProxyMiddleware(["/api", , "/otherApi"], { target: "http://localhost:5000" })
  );
};

选项2

代码语言:javascript
复制
 const { createProxyMiddleware } = require('http-proxy-middleware');
     
    module.exports = function(app) {
        app.use(createProxyMiddleware('/api/**', { target: 'http://localhost:5000' }));
        app.use(createProxyMiddleware('/otherApi/**', { target: 'http://localhost:5000' }));
    };

回复评论

该代理只在开发环境中使用。在production/Heroku中,所有的东西都运行在同一台服务器上,所以不需要代理。

create-react-app服务器只在开发环境中运行,所以当应用程序在PROD模式下运行时,它只是用来生成将由Node/Express服务器提供服务的生产JS包。

有关如何使其在生产中工作的问题,请查看this other answer

票数 21
EN

Stack Overflow用户

发布于 2018-03-08 14:58:32

作为DNS Rebinding的一种解决方案,Invalid Host Header已经投入使用。

要解决此问题,您必须在create-react-app根文件夹中创建一个名为.env.development的文件。在此文件中,设置

代码语言:javascript
复制
HOST=name.herokuapp.com

来自文档:https://create-react-app.dev/docs/proxying-api-requests-in-development/#invalid-host-header-errors-after-configuring-proxy

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49165232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档