我正在尝试将本地MERN应用程序部署到Heroku。应用程序可以离线工作。部署后,单击“打开应用程序”,我看到的只是来自后端的数据。不是前端。在此处进行部署:https://whispering-falls-45660.herokuapp.com/。
设置一个新的Heroku项目,并在成功“ git push Heroku master”之后,应用程序仅显示后端数据。 Heroku CLI版本:heroku / 7.24.1,节点版本:v10.13.0。
Github存储库:https://github.com/neilhsieh/whereToEat
Package.json文件已按照Brad Traversy的要求安装了正确的脚本:
"scripts": {
"start": "node server.js",
"server": "nodemon server.js",
"client": "npm start --prefix client",
"dev": "concurrently \"npm run server\" \"npm run client\"",
"heroku-postbuild": "NPM_CONFIG_PRODUCTION=false npm install --prefix client && npm run build --prefix client"
},
server.js代码具有适当的代码以指向客户端构建文件:
if (process.env.NODE_ENV === 'production') {
app.use(express.static('client/build'))
app.get('*', (req, res) => {
res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html')) // relative path
})
}
期望在Heroku上部署前端,最终只有后端。
更新:将process.env.NODE_ENV测试移至所有API调用之前,这解决了我的问题。