为什么 heroku 不能在我的 React 应用程序中使用代理?

Why won't heroku work with proxy in my react app?

我有一个简单的笔记应用程序,它在客户端文件夹中使用 react(创建 react 应用程序),带有 node express mongoose 后端。如果我尝试上传到 heroku,它会拒绝它,因为客户端文件夹中 package.json 中的代理("proxy":“http://localhost:3001”)。如果我摆脱代理,它会上传到 heroku 没问题,但因为它不在那里,它不会与后端对话,所以没有任何效果。当使用代理推送到 heroku 时,它会构建,但应用程序给了我 "Invalid Host header"。我该如何解决这个问题?我所尝试的只是删除代理。

您的应用程序是否使用了固定端口? Heroku 给你分配了一个你必须绑定的动态端口,所以你不能简单地使用像 3001 这样的固定端口。

当在 Heroku 上 运行 时,您应该绑定到 process.env.PORT。参见 runtime principles

有一个构建包可以解决这个问题并提供更好的体验 create-react-app 检查一下:

只需通过 运行 创建您的应用程序:

heroku create <app name> --buildpack mars/create-react-app

原来我的模型文件夹中有一个拼写错误的 index.js 文档,这就是给我无效主机 Header 错误的原因。我有一个大写字母 I 而不是小写字母...