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

Django应用在Heroku部署成功后访问链接报错,如何基于日志排查修复?

Heroku部署Django访问报错原因及修复方案

错误产生原因

  • ALLOWED_HOSTS配置不符合要求:Django默认会校验请求的Host头,未将Heroku应用域名加入settings.py的ALLOWED_HOSTS列表时,会直接拦截请求抛出服务错误。
  • 静态资源未适配Heroku运行环境:Heroku没有默认的Django静态资源处理能力,未配置对应依赖和规则时,应用启动后访问会触发资源加载异常导致服务崩溃。
  • 启动规则配置错误:项目根目录下的Procfile启动命令填写错误,比如使用开发环境的runserver命令,或者WSGI入口路径不匹配,都会导致服务启动后无法正常响应请求。
  • 环境变量缺失:SECRET_KEY、数据库连接地址等必填配置没有在Heroku的环境变量中配置,应用初始化时读取不到配置直接抛出异常。

具体修复方案

  1. 修正ALLOWED_HOSTS配置
    打开Django项目的settings.py文件,修改ALLOWED_HOSTS配置项:
# 替换为你的实际Heroku应用域名
ALLOWED_HOSTS = ['xxx.herokuapp.com']
# 也可以直接适配所有Heroku子域名
# ALLOWED_HOSTS = ['.herokuapp.com']
  1. 配置Heroku环境适配依赖
    首先安装django-heroku依赖包:
pip install django-heroku

在settings.py文件末尾添加以下配置,自动适配Heroku的运行环境、静态资源、数据库配置:

import django_heroku
django_heroku.settings(locals())

执行命令更新项目依赖清单:

pip freeze > requirements.txt
  1. 修正Procfile启动配置
    在项目根目录的Procfile中写入以下启动规则,替换为你的实际项目WSGI入口:
web: gunicorn 你的项目名称.wsgi --log-file -

确保gunicorn已经被添加到requirements.txt依赖清单中。

  1. 配置必要的环境变量
    可以直接在Heroku应用控制台的「Settings」-「Config Vars」板块添加所需环境变量,也可以通过Heroku CLI执行命令配置:
heroku config:set SECRET_KEY=你的Django自定义加密密钥
heroku config:set DEBUG=False

所有配置修改完成后重新推送代码到Heroku完成部署,部署完成后执行以下命令查看服务运行状态:

heroku ps

当状态显示为running时即可正常访问应用。

内容的提问来源于stack exchange,提问作者muhammad waqar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 16:09:02