Laravel自定义服务提供者本地正常 部署到主机后提示类不存在如何解决
Laravel自定义服务提供者本地运行正常线上类不存在报错处理
问题描述
我近期在Laravel应用中新增了一个用于购物车管理的自定义服务提供者,本地环境运行完全正常,但上传到主机后出现如下报错:
Class 'App\Helpers\Cart\CartServiceProvider' not found
已尝试的排查操作
- 已核对
config/app.php中的服务提供者注册配置、对应文件的命名空间声明,二者完全匹配,否则本地环境也无法正常运行 - 已执行
composer dump-autoload命令重新生成自动加载映射,问题仍未解决
相关代码
自定义服务提供者代码如下:
<?php namespace App\Helpers\Cart; use Illuminate\Support\ServiceProvider; class CartServiceProvider extends ServiceProvider{ public function register(){ $this->app->singleton('cart' , function () { return new CartService(); }); } }
问题解决方案
问题根源为Linux系统对文件路径大小写敏感,而本地开发环境(Windows/macOS)默认对大小写不敏感,因此本地无异常、线上报错。将存放服务提供者的文件夹名称修改为与命名空间大小写完全一致后,问题修复。
内容的提问来源于stack exchange,提问作者Thevil
相关产品推荐
相关产品推荐

