【发布时间】:2023-03-09 12:55:01
【问题描述】:
我制作了一个简单的金融应用程序,其中包含一个 React 前端和 Node/express 后端,我想将它部署到 Heroku。由于它是一个小型应用程序,我将所有内容(服务器和客户端文件)都放在了我的 git 存储库的根目录中。因此前端(index.html)、后端(index.js)的入口文件和Heroku所需的Procfile都在根目录下。
服务器似乎工作正常,因为我可以成功地从本地安装的前端发出请求。但是,服务器似乎无法提供静态文件。
这是来自 heroku 的日志消息:
2021-07-29T15:21:00.260957+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/" host=xpensoft.herokuapp.com request_id=2a484f4d-30cf-49b9-920d-14b9e9be28fb fwd="31.151.16.151" dyno=web.1 connect=0ms service=30000ms status=503 bytes=0 protocol=https
我正在使用此服务器代码提供静态文件:
if (process.env.NODE_ENV === 'production') {
app.use(express.static(__dirname));
}
有人知道是什么导致了超时吗?
编辑:
除了上面的代码,它应该提供静态文件(不幸的是没有),服务器文件中没有处理“/”端点的特定代码。只有特定命名端点的代码。
在 React 应用程序中,我使用 React Router 重定向用户:
<Route exact path='/'>
<Redirect to='/user' />
</Route>
但是 React 应用程序永远不会加载。
【问题讨论】:
-
在 heroku 控制台检查 heroku 日志或使用 Heroku CLI 命令“heroku logs -t -a herokuAppName”。如果找不到根本原因,请在此处发布。
-
另外,究竟什么是超时?部署或访问您的端点之一?
-
我编辑了帖子,请参见上文。服务器似乎在工作,但是没有提供静态文件
标签: node.js reactjs express heroku