执行Laravel config:clear后站点报500找不到StripeServiceProvider如何解决
故障原因
执行config:clear后Laravel会删除已编译的配置缓存,重新加载所有配置文件时无法找到已注册的Stripe\Laravel\StripeServiceProvider类,导致服务容器初始化失败,Class view does not exist是服务容器加载异常引发的次生报错。
解决方案
1. 临时屏蔽Stripe服务提供者加载
- 打开项目根目录
config/app.php,在providers数组中找到Stripe\Laravel\StripeServiceProvider::class条目,注释该行代码 - 若你使用Laravel 5.5+的包自动发现机制,在
composer.json中添加临时配置,禁用Stripe包的自动发现:
"extra": { "laravel": { "dont-discover": [ "stripe/laravel" ] } }
2. 重新安装Stripe Laravel依赖
执行命令重新安装Stripe包,修复可能损坏或丢失的包文件:composer require stripe/laravel
3. 恢复Stripe服务提供者配置
- 取消
config/app.php中Stripe服务Provider的注释 - 删除
composer.json的dont-discover数组中stripe/laravel条目
4. 重新生成各类缓存
依次执行以下命令重置缓存:php artisan config:cachephp artisan cache:clearphp artisan view:clear
注意:生产环境不建议直接执行
config:clear,该操作会直接删除配置缓存导致服务不可用,建议使用config:cache,该命令会先编译新的配置再替换旧缓存,不会出现中间不可用的状态。
内容的提问来源于stack exchange,提问作者Linesofcode
相关产品推荐
相关产品推荐

