node.js - 在 Heroku 上部署 React 和 Django

标签 node.js django reactjs heroku

我已经为这个问题苦苦思索了一段时间,但似乎无法弄明白。我正在尝试将 Django 应用程序部署到前端使用 React 的 heroku。我对 react 还很陌生,所以我可能在这里遗漏了一些基本的东西。

我现在有一个 heroku 应用程序,它有两个构建包(heroku/nodejs 和 heroku/python)。要在本地运行应用程序,我使用 python manage.py runserver 以及端口 3000 上的 node server.js。我知道 Heroku 只允许一个端口接收 HTTP 请求,所以我认为问题就在那里。

我的主要问题是:要在 Heroku 应用程序上使用 Django 和 React,我需要有两个单独的应用程序(一个用于 Django,一个用于 React)还是我可以只维护一个应用程序?

我一直在搜索 this repository而且似乎只使用了一个应用程序。但是我看不到 Node 服务器是如何工作的。

感谢您的任何澄清或向正确方向的插入!如果我需要澄清我的问题,请告诉我。

编辑: 我尝试过的其他一些事情:

  1. 正在关注 this tutorial
  2. heroku-postbuild 脚本添加到启动 Node 服务器的 package.json 文件中。不过,这会阻止构建过程继续启动 Django 应用程序。
  3. 我遇到了 this blog post也是,但关于应用程序是否可以在同一个 Heroku 应用程序中或必须不同(如 #1 中的教程),我似乎得到了相互矛盾的信息。

最佳答案

除非您计划实现服务器端渲染(如果您是 React 新手,则不建议这样做),否则您只需要一台服务器。

您缺少的是一种生成包含所有反应代码的 javascript 包的方法。然后,您可以像处理任何其他 HTML/CSS/JS 文件一样将该 bundle 发送给客户端。

尝试使用类似 webpack 的工具生成一个 javascript 包。如果可能,将其放在 heroku-postbuild 步骤中,否则,只需在部署更新之前生成包

关于node.js - 在 Heroku 上部署 React 和 Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41249529/

相关文章:

javascript - 在 Ubuntu 64 位上安装 js-yaml NPM 包依赖项时出现问题

node.js - Node 集群 : How to assign separate server/port to each worker?

node.js - 使用 React 实现 Spotify API

node.js - NodeJs 中的这一行是什么意思?

django-allauth HTML 电子邮件不发送

python - 在 django 1.7 上出现 Debug False 的 Django 错误

Django测试问题

javascript - React 中作为 prop 传递时区分 img 和 svg

javascript - 使用 React 应用程序的 Express 处理路线?

javascript - react 选择分组的多个选项以对象作为值