首页 > 解决方案 > 在 heroku 上托管 django 应用程序时遇到的问题

问题描述

嘿,我刚刚在 Heroku 上托管了我的 Django 应用程序,我遇到了两个问题:

  1. "Failed to detect app matching no buildpack"
  2. Procfile declares types -> (none)

当我跑步时,heroku logs --tail 我得到了这个

2013-08-31T21:00:25.085053+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path=/favicon.ico host=cristowip.herokuapp.com fwd="189.137.81.39" dyno= connect= service= status=503 bytes=

标签: python-3.xdjangoherokuheroku-cli

解决方案


如果有任何进程正在运行,请检查 heroku ps: $ heroku ps 那没有返回任何内容。

因此,在网络和 stackexchange 上进行了一些搜索,发现了一个叫做 Procfile 的东西——我以前从未使用过它。显然,heroku 会获取有关自动运行的信息,但有时它会出现问题。将信息放入 Procfile 更安全。这个问题似乎在一年多的时间里反复出现,但 Heroku 的人还没有修复它或修复他们的教程,这就是一切开始走下坡路的地方。

现在按照以下步骤为您的安装修复它:

  1. 在应用程序的根目录(其中有 venv 文件夹)中创建一个名为 Procfile 的文件(区分大小写 - 所以大写 P!)。在 Windows 上,您必须确保 Windows 没有添加 .txt 扩展名。我使用linux,所以它只是'touch Procfile'。
  2. 编辑文件并为 Django 输入以下详细信息(您需要根据运行它的需要确定其他应用程序): web: python website/manage.py runserver 0.0.0.0:$PORT 注意间距和您需要提供的 IP。如果您错过了最后一部分,它将在 localhost 上运行,您将无法从您的机器连接到该部分。
  3. git 添加文件并执行 git push heroku master 将此文件推送到服务器。尽管推送说一切都很好,但我们还没有完成。
  4. 还记得 heroku ps 之前没有给出任何结果吗?因此,现在您需要附加该过程。使用以下命令添加 web dyno: $ heroku ps:scale web=1 缩放 web 进程...完成,现在正在运行 1 现在检查您的网站,它应该可以工作!

推荐阅读