You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署Django应用到Heroku时出现H10错误,寻求可行修复方案

Django部署Heroku H10错误修复方案

核心问题及修复步骤

  • wsgi.py配置错误
    当前wsgi.py中指定的Django配置模块为UrlShortener.settings.dev,但你给出的配置文件中settings.py直接存放在UrlShortener根目录下,不存在dev子配置文件,会直接导致Django启动失败。
    修复:将wsgi.py中的对应行修改为:
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'UrlShortener.settings')
  • 缺少SECRET_KEY配置
    DEBUG = False时Django强制要求配置SECRET_KEY,你提供的settings.py中无该配置项,触发启动异常。
    修复:
    在settings.py中添加如下配置:
SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY', '本地测试用的临时密钥')

之后执行python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"生成生产用密钥,到Heroku应用设置页的Config Vars区域添加环境变量DJANGO_SECRET_KEY,值为生成的随机字符串。

  • SQLite数据库不兼容Heroku运行环境
    Heroku的文件系统是临时性的,每次部署、Dyno重启都会清空本地存储的文件,SQLite无法正常持久化运行,也可能触发启动崩溃。
    修复:改用Heroku官方提供的PostgreSQL数据库:
  1. 先安装依赖包dj-database-url、psycopg2-binary,并添加到requirements.txt中
  2. 在settings.py的DATABASES配置段后添加如下代码:
import dj_database_url
DATABASES['default'] = dj_database_url.config(conn_max_age=600)
  1. 在Heroku应用的资源页添加Heroku Postgres免费插件即可。
  • 依赖检查
    确认requirements.txt中包含所有运行所需依赖,最小依赖列表如下:
django
gunicorn
whitenoise
dj-database-url
psycopg2-binary

部署后操作

部署完成后执行heroku run python manage.py migrate完成数据库表迁移,避免访问时表不存在报错。

补充说明

你在settings.py中写的DISABLE_COLLECTSTATIC=1为无效配置,该参数是Heroku的环境变量,需要放到Heroku的Config Vars中配置才会生效。

内容的提问来源于stack exchange,提问作者not-a-great-programmer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 11:24:05