【问题标题】:Deploy full-stack app with Heroku - Express back end, React front end?使用 Heroku 部署全栈应用程序 - Express 后端,React 前端?
【发布时间】:2020-03-13 10:15:19
【问题描述】:

我构建了我的第一个全栈应用程序,具有 Express 后端和 React 前端,包含在同一个项目文件夹 (see GitHub repo) 中。前端包含在名为client 的文件夹中。 我从根目录部署了应用程序——在部署的站点上,它只是说“无法获取 /”。 前端部分的 package.json 有一个代理字段,用于代理对后端的请求。当我在 localhost 上打开项目时,一切正常。 任何指针将不胜感激。

【问题讨论】:

    标签: heroku deployment web-deployment react-fullstack


    【解决方案1】:
     "scripts": {
        "start": "node server",
        "heroku-postbuild": "cd client && npm install && npm run build"
      },
    

    尝试在您的后端package.json 部分进行修复。首先,您想要获取后端集,然后 Heroku 需要 React 才能运行。 Heroku 有一些怪癖。

    【讨论】:

    • 感谢您的建议 -- "start": "node server" 部分已经在脚本中,但我添加了 "heroku-postbuild": "cd client && npm install && npm run build" 和重新部署,它仍然只是说Cannot GET /
    • 好的---所以如果它在本地工作但即使在我的建议之后也不能在 Heroku 上工作,可能就是这样:在您的 Heroku 部署项目页面上的 SETTINGS 上,转到 CONFIG VARS 点并从config/server.js 文件中手动输入变量和值。在 Heroku 上添加 process.env 内容,看看是否可行。
    • 就是这样,必须添加配置变量,还必须在我的 server.js 文件中添加它才能工作: if (process.env.NODE_ENV) { app.use(express.静态(“客户端/构建”));常量路径 = 要求('路径'); app.get('*', (req, res) => { res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html')); });非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    • 2019-10-31
    • 2017-04-15
    • 2019-09-07
    • 1970-01-01
    相关资源
    最近更新 更多