在Heroku上部署后,React应用和Nginx出现问题

时间:2018-10-09 21:48:17

标签: node.js reactjs nginx heroku

我有一个使用“ create-react-app”创建的React应用,并使用“ heroku create --buildpack https://github.com/mars/create-react-app-buildpack.git”进行了Heroku部署的设置。最初的部署以及随后通过Travis CI的部署均获得了成功。但是,从昨天开始,虽然成功构建后仍在部署该应用程序,但无法将其打开,并且Heroku日志显示为:

  
    

2018-10-09T20:14:16.000000 + 00:00 app [api]:构建成功
     2018-10-09T20:14:19.093204 + 00:00 heroku [web.1]:使用命令bin/boot启动过程
     2018-10-09T20:14:21.599174 + 00:00 app [web.1]:将运行时环境注入到/app/build/static/js/1.65a45b50.chunk.js(来自.profile .d / inject_react_app_env.sh)
     2018-10-09T20:14:22.010832 + 00:00 app [web.1]:将运行时环境注入到/app/build/static/js/main.b9301262.chunk.js中(来自。 profile.d / inject_react_app_env.sh)
     2018-10-09T20:14:22.212043 + 00:00 app [web.1]:将运行时环境注入到/app/build/static/js/runtime~main.229c360f.js中(来自。 profile.d / inject_react_app_env.sh)
     2018-10-09T20:14:22.748085 + 00:00 app [web.1]:正在启动日志重定向...
     2018-10-09T20:14:22.748475 + 00:00 app [web.1] :启动nginx ...
     2018-10-09T20:14:22.846806 + 00:00 app [web.1] :进程意外退出:nginx
     2018-10-09T20:14:22.847047 + 00:00应用程序[web.1] :正在关闭,终止子进程...
     2018-10-09T20:14:22.845551 + 00:00 app [web.1]::nginx:[emerg] ./config/nginx.conf中“ set”指令中的参数数目无效: 76
     2018-10-09T20:14:22.949293 + 00:00 heroku [web.1]:状态从开始更改为崩溃
     2018-10-09T20:14:22.950957 + 00:00 heroku [web.1]:状态从崩溃状态更改为开始状态
     2018-10-09T20:14:22.935763 + 00:00 heroku [web.1]:进程退出,状态为1

  

我看不到“ set”指令是指什么以及如何配置它。据我了解,配置Nginx服务器行为的方式将通过static.json文件(https://github.com/heroku/heroku-buildpack-static#configuration),但我可能是错的。到目前为止,它是通过以下方式配置的:

{
    "root": "build/",
    "routes": {
      "/**": "index.html"
    },
    "proxies": {
        "/api/": {
            "origin": "${PORT}"
        }
    }
}

我还添加了{.3}所示的app.json:

{
    "buildpacks": [
        {
        "url": "mars/create-react-app"
        }
    ]
}

我使用的buildpack配置了dyno https://github.com/mars/create-react-app-buildpack#user-content-commit--deploy-%EF%B8%8F,因此我不需要Procfile

我已经做了大量研究,但是找不到任何可以解决此问题的方法。任何帮助深表感谢! 谢谢!

1 个答案:

答案 0 :(得分:0)

我从static.json文件中删除了代理,它解决了该问题。我指的PORT是不必要的,因为我已经在后端设置了CORS。