模块已经 module:disable,页面仍报 Class VendorModule...Proxy does not exist,通常不是模块真的还启用,而是生产模式的 DI 元数据仍保留着旧依赖。

先确认配置状态而不是只看app/code目录

php bin/magento module:status Vendor_Module
grep -n "Vendor_Module" app/etc/config.php

再搜索到底是谁还引用旧类:

rg "Vendor\Module" app/code app/etc vendor/composer

有时另一个自定义模块在 di.xml、构造函数或 preference 中仍依赖被禁用模块,这种情况下重新编译也应该失败,不能靠删生成代码掩盖。

确认没有真实依赖后再重建DI

维护窗口内执行:

php bin/magento maintenance:enable
rm -rf generated/code/* generated/metadata/*
php bin/magento setup:di:compile
php bin/magento cache:clean config
php bin/magento maintenance:disable

多节点环境要在构建阶段生成一次,再把同一 generated 产物发布到所有节点,不能只清当前机器。验证时用 setup:di:compile 的成功退出码作为第一道标准,再请求原报错页面,确认日志没有继续加载旧 Proxy。