根据Brad Traversy's YT tutorial,我已经开发了一个非常简单的演示Todo List应用程序(Express + React),并将该应用程序成功部署到了Heroku,并在其中运行。但是,当我将相同的完全相同的代码部署到IBM Cloud时,只有空白的句子Invalid Host header
。
更多背景信息:
create-react-app
我正在部署一个提供静态文件的生产版本:
// Serve static assets if in production
if (process.env.NODE_ENV === 'production') {
app.use(express.static('client/build'))
app.get('*', (req, res) => {
res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html'))
})
}
我在IBM Cloud的部署管道中的构建和部署阶段顺利通过
我已经用Google搜索并尝试使用官方create-react-app docs建议的方法来解决此问题:
HOST=mypublicdevhost.com
DANGEROUSLY_DISABLE_HOST_CHECK=true
也有人对Stack Overflow提出了类似的问题:
Invalid Host header when running Create React App on localhost subdomain
How do I fix an Invalid Host Header error when deploying my react app to Heroku?
但是,没有一个答案有帮助。
我得出的结论是,这是特定于IBM Cloud的问题。有人知道这可能的原因吗? IBM Cloud是否有任何限制导致我的应用无法正确加载?
任何帮助将不胜感激。
编辑:
构建阶段的脚本:
export PATH=/opt/IBM/node-v6.7.0/bin:$PATH
npm install
npm run build
“部署”阶段的脚本:
cf push "${CF_APP}"
答案 0 :(得分:0)
一个可行的解决方案是使用http-proxy-middleware手动设置代理。请在此处查看说明:deploying create-react-app to heroku with express backend returns invalid host header in browser
这是一个最小的工作示例:https://github.com/sehailey/proxytest 这是部署的示例:https://proxytest2.herokuapp.com/