MERN:如何访问Heroku部署的构建文件夹?



如何从节点访问React中的构建文件夹进行Heroku部署?我得到错误,我几乎100%肯定我只是没有使用正确的路径。

我的想法是使用标准路径导航../,但这似乎是一个不正确的假设。

文件层次结构:

Project Folder 
|
|___Backend-Folder
|   |
|   |___App.js
|    
|___Frontend-Folder
|
|___build

App.js(服务器):

if (process.enn.NODE_ENV === 'production') {
app.use(express.static(path.resolve(__dirname, "../Frontend-Folder/build")));
app.get("*", function (request, response) {
response.sendFile(path.resolve(__dirname, "../Frontend-Folder/build", "index.html"));
});
}

包。

"heroku-postbuild": "NPM_CONFIG_PRODUCTION=false npm install --prefix ../Frontend-Folder && npm run build --prefix ../Frontend-Folder"

我一直在工作的教程有他们的服务器和构建文件在同一个主文件夹,所以他们不需要退出。知道怎么找到正确的路径吗?我真的很感谢你的帮助!

首先,您的代码中有一个错别字。应该是process.env.NODE_ENV而不是process.enn.NODE_ENV

还可以这样做:

if (process.env.NODE_ENV === "production") {
app.use(express.static(path.join(__dirname, "../Frontend-Folder/build")))
app.get("*", (req, res) => {
res.sendFile(path.resolve(__dirname, "/../Frontend-Folder", "build", 
"index.html"))
})
}

注意"join"在app.use而不是resolve.

你的包。Json构建文件应该是:

"heroku-postbuild": "NPM_CONFIG_PRODUCTION=false npm install --prefix Frontend- 
Folder && npm run build --prefix Frontend-folder"