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

Django部署Heroku报htmlmin无MarkRequestMiddleware错误如何解决

修复方案

根本原因

该错误由本地与Heroku环境安装的django-htmlmin依赖版本不一致导致:旧版django-htmlmin包含MarkRequestMiddleware中间件,0.11.0及以上版本已将该中间件废弃移除,若requirements.txt未锁定版本,Heroku会默认拉取最新版,就会触发类不存在的AttributeError。

可选择的修复方案

  • 方案1:锁定与本地一致的依赖版本
    本地执行pip freeze | grep django-htmlmin查询当前使用的版本号,将requirements.txt中的django-htmlmin条目修改为带版本号的格式,例如django-htmlmin==0.10.0,避免Heroku自动拉取最新版。
  • 方案2:适配新版django-htmlmin的中间件配置
    若要使用最新版依赖,将settings.py中间件配置中的htmlmin.middleware.MarkRequestMiddleware替换为htmlmin.middleware.HtmlMinifyMiddleware,同时保证该中间件放在django.middleware.common.CommonMiddleware之后,在settings.py中新增HTML_MINIFY = True配置开启压缩功能即可。
  • 方案3:清理重复依赖
    检查requirements.txt,不要同时声明htmlmin和django-htmlmin两个依赖,纯htmlmin包不含Django中间件实现,二者共存会导致依赖冲突,仅保留django-htmlmin即可。

验证步骤

修改完成后,本地先执行pip install -r requirements.txt覆盖安装依赖,启动Django服务确认运行正常后,再重新推送到Heroku部署即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:30:00