我试了很多次都没有找到问题,需要帮助,请帮助任何人。当我在heroku上部署后端路由工作,但客户端构建静态不工作
这是我的github repo https://github.com/Tanvir-Niloy/Manobik_Narsingdi
Heroku主要用于制作服务器端api,因此您可以将其连接到客户端应用程序以使其具有服务器端。
From yourpackage.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页面,netflix, Vercel,…),要么你需要从你的服务器项目中提供静态内容。你正在这么做,但到目前为止,你还在不断地修改代码:
app.use(express.static(Path.join(__dirname, '/client/build/static')))
在我看来,你这里有一个路径问题。假设构建文件放在client
文件夹中,应该是'./../client/build/static'
。
共享build.log
也有助于查看您的项目是否在Heroku上正确构建。