我正在Heroku上部署我的react网站。它在本地运行良好,并且运行命令"heroku local-web"。网站已成功部署,但出现应用程序错误。
An error occurred in the application and your page could not be served. If you are the application owner, check your logs for details. You can do this from the Heroku CLI with the command
heroku logs --tail
在运行heroku logs-tail时,我的日志文件看起来像这样:
2020-04-20T09:47:52.000000+00:00 app[api]: Build succeeded
2020-04-20T09:47:55.522526+00:00 app[web.1]: ℹ 「wds」: Project is running at https://{some-ip-address}
2020-04-20T09:47:55.523069+00:00 app[web.1]: ℹ 「wds」: webpack output is served from /{filename path}
2020-04-20T09:47:55.523174+00:00 app[web.1]: ℹ 「wds」: Content not from webpack is served from /app/public
2020-04-20T09:47:55.523277+00:00 app[web.1]: ℹ 「wds」: 404s will fallback to /{filename path}
2020-04-20T09:47:55.523531+00:00 app[web.1]: Starting the development server...
2020-04-20T09:47:55.523534+00:00 app[web.1]:
2020-04-20T09:47:55.631808+00:00 heroku[web.1]: State changed from starting to crashed
2020-04-20T09:48:17.332436+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host={hostname}.herokuapp.com request_id={some_request_id} fwd={ip address} dyno= connect= service= status=503 bytes= protocol=https
故障的可能原因是什么?我该如何解决?
您正试图在Heroku上运行一个开发服务器,如所示
Starting the development server...
您的npm start
任务是什么?你有npm run build
脚本吗?我敢打赌,你的启动脚本会在观察模式下启动webpack吗?
相反,对你的package.json
:尝试这样的方法
{
//...
"scripts": {
"build": "webpack --mode production",
"dev": "webpack --mode development --watch",
"start": "node server.js"
}
}
这假设您使用的是节点服务器,则需要将start
命令替换为您使用的任何服务器或使用Heroku静态构建包。
如果Heroku看到build
脚本,它将在部署应用程序时运行该脚本。
选项2
如果您的服务器不是用"npm启动"启动的,请确保您有一个Procfile
设置:
web: npm run server