Heroku部署无Web服务Python测试应用遇H14错误求助
解决Heroku部署无Web服务Python应用的H14错误
问题原因
你看到的H14错误,是因为Heroku默认会自动尝试访问应用的Web根路径(/)和图标路径,但你的应用只配置了worker进程,没有web进程,所以触发了这个错误。但实际上只要你的worker进程正常启动,这个错误不会影响worker的运行。
处理方案
方案1:忽略错误,确认worker正常运行
先执行heroku ps命令查看进程状态,如果输出里显示worker.1: up,说明你的脚本已经在正常运行了,H14错误只是Heroku的默认Web访问触发的,完全可以忽略。
方案2:添加极简web进程消除错误
如果不想看到这个错误,可以添加一个不需要实际业务逻辑的web进程,只需要满足Heroku的web进程要求——绑定到$PORT环境变量:
- 把
flask加到你的requirements.txt文件里,确保部署时能安装依赖 - 创建一个
web.py文件,内容如下:
from flask import Flask import os app = Flask(__name__) @app.route('/') def dummy(): return "Worker is running", 200 if __name__ == '__main__': port = int(os.environ.get('PORT', 5000)) app.run(host='0.0.0.0', port=port)
- 修改你的
Procfile,添加web进程配置:
worker: python test.py web: python web.py
- 执行命令启动web进程:
heroku ps:scale web=1
这样Heroku的Web访问就会得到正常响应,不会再出现H14错误,同时你的worker进程也会继续正常运行。
内容的提问来源于stack exchange,提问作者Ann
相关产品推荐
相关产品推荐

