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

Heroku部署Django应用后出现Server Error (500)错误求助

Django+Whitenoise部署Heroku报错解决方案
  • 修复ALLOWED_HOSTS配置
    现有配置中127.0.0.1:8000携带了端口,Django的ALLOWED_HOSTS仅支持填写域名或IP,删除端口即可,修改后为:
    ALLOWED_HOSTS = ['labwebsitetest.herokuapp.com','127.0.0.1']
    
  • 取消禁用COLLECTSTATIC
    Whitenoise依赖collectstatic命令生成的静态资源文件运行,手动禁用COLLECTSTATIC后,部署阶段不会生成STATIC_ROOT对应目录的资源,直接触发静态资源加载报错,请前往Heroku控制台的配置变量页删除DISABLE_COLLECTSTATIC配置项。
  • 补充静态文件扫描路径
    现有配置未声明应用外的全局静态文件路径,如果你有放在单个APP目录外的静态资源(包括PyTorch模型文件、全局CSS/JS/图片),需要新增STATICFILES_DIRS配置:
    # 替换括号内的路径为你实际存放全局静态资源的文件夹名
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'common_static'),
    ]
    
  • 适配Heroku运行环境
    1. Heroku文件系统是临时存储,每次部署都会重置,你当前使用的SQLite数据库不仅会丢失所有写入的数据,还可能触发权限错误导致服务崩溃,建议切换为Heroku自带的PostgreSQL数据库
    2. Heroku单应用slug体积上限为500MB,完整PyTorch依赖容易超出大小限制,建议在requirements.txt中指定安装CPU版本PyTorch减少体积:
    --find-links https://download.pytorch.org/whl/torch_stable.html
    torch==2.0.0+cpu
    torchaudio==2.0.0+cpu
    torchvision==0.15.0+cpu
    
  • 检查启动配置
    确保项目根目录存在Procfile文件,内容如下,同时将gunicorn添加到requirements.txt依赖中:
    web: gunicorn website.wsgi --log-file -
    
  • 优化敏感信息配置
    现有明文硬编码SECRET_KEY存在安全风险,建议修改为读取环境变量:
    SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY', 'django-insecure-2e(@-ilm2ph7sx34c-0^!o4bcjt2#fx^j=l(m$ey@aqe823q62')
    
    之后在Heroku配置变量页新增DJANGO_SECRET_KEY项,填写随机生成的安全密钥即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:54:01