【问题标题】:MERN: How to access build folder for Heroku deployment?MERN:如何访问构建文件夹以进行 Heroku 部署?
【发布时间】:2023-03-06 03:59:01
【问题描述】:

如何从节点访问 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"));
  });
}

Package.json 构建文件:

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

我一直在努力的tutorials 将他们的服务器和构建文件放在同一个主文件夹中,因此他们不需要退出。知道如何导航到正确的路径吗?非常感谢您的帮助!

【问题讨论】:

    标签: javascript node.js reactjs heroku


    【解决方案1】:

    首先,您的代码中有一个错字。它应该是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"))
    })
    }
    

    注意 app.use 中的“加入”而不是解析。

    你的 package.json 构建文件应该是:

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

    【讨论】:

      猜你喜欢
      • 2020-05-12
      • 1970-01-01
      • 2021-09-23
      • 2021-06-09
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      • 2020-09-18
      • 2015-01-02
      相关资源
      最近更新 更多