javascript - 调试将全栈应用程序部署到 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"
}
}
`
解决方案
尝试将构建放在项目的根目录并将代码更改为:
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",因为后端和前端位于同一台服务器上。