在Heroku上部署React和Django

时间:2016-12-20 19:07:19

标签: node.js django reactjs heroku

我一直在打击这个问题一段时间,似乎无法弄明白。我正在尝试将Django应用程序部署到前端使用的heroku。我很陌生,所以我可能会遗漏一些基本的东西。

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

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

我一直在搜索this repository,似乎只使用了一个应用。但是我看不到节点服务器是如何工作的。

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

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

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

1 个答案:

答案 0 :(得分:5)

除非您计划实施服务器端呈现(如果您是新手做出反应,则不建议),您只需要一台服务器。

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

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