【发布时间】:2021-02-23 17:02:30
【问题描述】:
我尝试了很多次,但找不到问题需要银色帮助,请帮助任何人。当我部署在 heroku 后端路由上时,客户端构建静态不起作用
这是我的 github 仓库https://github.com/Tanvir-Niloy/Manobik_Narsingdi
【问题讨论】:
标签: web heroku backend web-deployment mern
我尝试了很多次,但找不到问题需要银色帮助,请帮助任何人。当我部署在 heroku 后端路由上时,客户端构建静态不起作用
这是我的 github 仓库https://github.com/Tanvir-Niloy/Manobik_Narsingdi
【问题讨论】:
标签: web heroku backend web-deployment mern
Heroku 主要用于制作服务器端 api,因此您可以将其连接到客户端应用程序以使其具有服务器端。
【讨论】:
来自您的package.json
"scripts": {
"start": "node server/server.js",
"server": "nodemon server/server",
"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"
},
您还有一个Procfile,内容为:web: node server/server.js
如果没有Procfile,Heroku 会执行web: npm start,这与web: node server/server.js 相同。
但正如您从start 脚本中看到的那样,您并没有执行您的客户端项目。您只是在运行后端,而不是在为您的静态网站提供服务。
您要么需要在某个地方托管您的客户端项目(GitHub 有一些解决方案:GitHub pages、Netlify、Vercel 等),要么您需要从服务器项目中提供静态内容。您正在这样做,但到目前为止,您正在不断更改您的代码:
app.use(express.static(Path.join(__dirname, '/client/build/static')))
在我看来,您在这里遇到了路径问题。应该是 './../client/build/static' 假设构建文件放在 client 文件夹中。
分享 build.log 也有助于查看您的项目是否在 Heroku 上正确构建。
【讨论】: