我一直在打击这个问题一段时间,似乎无法弄明白。我正在尝试将Django应用程序部署到前端使用的heroku。我很陌生,所以我可能会遗漏一些基本的东西。
我现在有一个heroku应用程序,它有两个buildpacks(heroku / nodejs和heroku / python)。要在本地运行应用程序,我在端口3000上使用python manage.py runserver
和node server.js
。我知道Heroku只允许一个端口接收HTTP请求,所以我认为存在问题。
我的主要问题是:在Heroku应用程序上使用Django和React我需要有两个独立的应用程序(一个用于django,一个用于反应)或者我可以只维护一个应用程序吗?
我一直在搜索this repository,似乎只使用了一个应用。但是我看不到节点服务器是如何工作的。
感谢任何澄清或推动正确的方向!如果我需要澄清我的问题,请告诉我。
编辑: 我尝试过的其他一些事情:
heroku-postbuild
脚本添加到启动节点服务器的package.json
文件中。这可以防止构建过程继续启动django应用程序。答案 0 :(得分:5)
除非您计划实施服务器端呈现(如果您是新手做出反应,则不建议),您只需要一台服务器。
您缺少的是一种生成包含所有反应代码的javascript包的方法。然后,您可以像使用任何其他HTML / CSS / JS文件一样将该捆绑包发送到客户端。
尝试使用webpack之类的工具生成javascript包。如果可能,请将其放在heroku-postbuild
步骤中,否则,只需在部署更新之前生成捆绑包