Laravel 10部署报错:Class 'Illuminate\Routing\Events\PreparingResponse'未找到求助
解决Laravel 10部署时
Class 'Illuminate\Routing\Events\PreparingResponse' not found错误 问题原因
Laravel 10 已将PreparingResponse事件类从Illuminate\Routing\Events命名空间迁移至Illuminate\Http\Events,旧命名空间的引用会触发类找不到错误。
解决步骤
全局替换命名空间引用
遍历项目所有PHP文件,将旧命名空间替换为新路径:# 项目根目录执行,全局替换 grep -r "Illuminate\\Routing\\Events\\PreparingResponse" . --include="*.php" | cut -d: -f1 | xargs sed -i 's/Illuminate\\Routing\\Events\\PreparingResponse/Illuminate\\Http\\Events\\PreparingResponse/g'也可通过IDE的全局搜索替换功能完成,确保自定义代码、事件监听器中的所有引用都更新。
检查第三方依赖兼容性
如果错误来自第三方包,需确认该包是否支持Laravel 10:- 查看包的文档或仓库,确认Laravel版本支持范围;
- 若包未兼容,可寻找替代包、fork包并修改命名空间引用,或锁定兼容Laravel 10的包版本。
清理生产环境缓存
在GitLab CI/CD部署脚本中添加缓存清理命令,避免旧缓存残留:php artisan config:clear php artisan route:clear php artisan view:clear php artisan cache:clear确认本地与生产环境版本一致
检查本地和生产环境的Laravel版本是否匹配:# 查看Laravel版本 composer show laravel/framework若本地仍为Laravel 9,需先在本地完成版本升级测试,确认无问题后再部署到生产环境。
内容的提问来源于stack exchange,提问作者pavel
相关产品推荐
相关产品推荐

