我把我的mern堆栈项目推到heroku master进行部署后,打开应用程序,它显示未找到。花了这么多的时间和引用相关的stackoverflow问题没有解决我的问题
我使用构建项目
"scripts": {
"build": "cd backend && npm install && cd ../frontend && npm install && npm run build",
"start": "node backend/server.js",
}
字符串
在终端里面我使用npm run build
build成功地构建了我的项目
server.js
app.use(express.static(path.join(__dirname, '/frontend/build')));
app.get('*', (req,res) => {
res.sendFile(path.join(__dirname, '/frontend/build/index.html'))
})
型
这是我的文件夹结构
的数据
build文件夹中的文件
的
将文件推送到heroku master成功返回,没有错误。登录heroku logs --tail
给出了以下内容
2022-11-08T06:05:01.882420+00:00 heroku[web.1]: State changed from crashed to starting
2022-11-08T06:05:09.142138+00:00 heroku[web.1]: Starting process with command `npm start`
2022-11-08T06:05:11.262904+00:00 app[web.1]:
2022-11-08T06:05:11.262931+00:00 app[web.1]: > blog-app@1.0.0 start
2022-11-08T06:05:11.262932+00:00 app[web.1]: > node backend/server.js
2022-11-08T06:05:11.262932+00:00 app[web.1]:
2022-11-08T06:05:11.880253+00:00 app[web.1]: server connected on port http://localhost:52809
2022-11-08T06:05:12.097847+00:00 heroku[web.1]: State changed from starting to up
2022-11-08T06:05:13.711620+00:00 app[web.1]: server connected to mongoDB
2022-11-08T06:05:23.749281+00:00 heroku[router]: at=info method=GET path="/" host=thekrishblog.herokuapp.com request_id=f8b42c26-5f03-46e5-a04e-0fa6cb14d8b8 fwd="117.204.133.112" dyno=web.1 connect=0ms service=7ms status=404 bytes=380 protocol=https
2022-11-08T06:05:23.750032+00:00 app[web.1]: Error: ENOENT: no such file or directory, stat '/app/backend/frontend/build/index.html'
2022-11-08T06:06:26.010343+00:00 heroku[router]: at=info method=GET path="/" host=thekrishblog.herokuapp.com request_id=18800012-c573-49aa-a6f8-b107f95a3013 fwd="117.204.133.112" dyno=web.1 connect=0ms service=2ms status=404 bytes=380 protocol=https
2022-11-08T06:06:26.008479+00:00 app[web.1]: Error: ENOENT: no such file or directory, stat '/app/backend/frontend/build/index.html'
型
我也参考了Heroku ENOENT: no such file or directory, stat '/app/build/index.html',但它确实回答了我的问题
1条答案
按热度按时间u91tlkcl1#
我确定了两个问题,请逐一尝试检查是否都是这样:
**1.)**在您的错误消息中,我看到:
/backend/frontend/build/index.html
但应该是frontend/build/index.html
。要修复此问题,请将路径调整为:字符串
**2.)**检查是否
/app
'/app/backend/frontend/build/index.html'
个不算太多。我假设您将主机上的根路径调整为
'app'
,但这不是必要的。