首页 > 解决方案 > 调试将全栈应用程序部署到 Heroku

问题描述

我一直在尝试将我的全栈聊天工具应用程序从本地主机部署到使用 Heroku 进行生产。我不确定必须在我的代码中进行哪些更改才能使其在 heroku 上正常运行,因为我目前遇到 404“未找到”错误。

我按照某人的建议添加了一个 Procfile 和一个 App.json 文件。我不确定是否应该归咎于我的 package.json 的启动脚本,或者我是否需要更新代码中 HTTP 请求的 URL(从 localhost 到 heroku 的站点 URL)。

或者,如果我需要将应用程序推送到生产环境并下载静态文件,我对此不是很有经验。代码托管在我的 Github ( https://github.com/aladin94/MyChatterbox ) 上。我究竟做错了什么?

`{
  "name": "react-chat-tutorial",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@pusher/chatkit-client": "^1.0.2",
    "@pusher/chatkit-server": "^1.0.1",
    "cors": "^2.8.4",
    "express": "^4.16.3",
    "lodash": "^4.17.15",
    "lodash.template": "^4.5.0",
    "react": "^16.2.0",
    "react-dom": "^16.2.0",
    "react-scripts": "1.1.1",
    "concurrently": "^3.5.1"
  },
  "devDependencies": {
    "concurrently": "^3.5.1"
  },
  "scripts": {
    "start": "node server.js"
  },
  "engines": {
    "node": "10.14.1",
    "npm": "6.4.1"
  }
}
`

标签: javascriptnode.jsexpressherokubackend

解决方案


尝试将构建放在项目的根目录并将代码更改为:

app.use(express.static('build')) app.get('*', (req, res) => { res.sendFile(path.resolve(__dirname, 'build', 'index.html')) })

要运行构建,您需要在 package.json 中添加脚本:“build”:“react-scripts build”

将静态路由http://localhost:3001/users更改为"/users",因为后端和前端位于同一台服务器上。


推荐阅读