Laravel 8部署Hostinger后提示Target class控制器不存在如何解决?
排查修复步骤
1. 优先检查大小写匹配问题
Hostinger使用Linux系统,大小写敏感,而本地Windows/macOS环境默认大小写不敏感,这是最常见的诱因:
- 确认控制器目录名称大小写:报错路径为
backend\BrandController,检查app/Http/Controllers/下的目录是backend(全小写)还是Backend(首字母大写),必须和路由、命名空间中的写法完全一致 - 确认控制器文件名:必须为
BrandController.php,和类名完全匹配,首字母大写 - 确认控制器顶部命名空间:和目录结构完全匹配,比如目录是
Backend的话,命名空间必须写namespace App\Http\Controllers\Backend;
2. 清除Laravel缓存
部署后旧的路由、配置缓存会导致配置修改不生效:
- 如果你可以在Hostinger上执行命令,依次运行:
php artisan route:clear php artisan config:clear php artisan cache:clear
- 无法执行命令的话,直接删除
bootstrap/cache/目录下除.gitignore外的所有文件即可
3. 重新生成Composer自动加载映射
上传文件可能导致类映射不匹配,执行命令重新生成:
composer dump-autoload
如果无法执行命令,可以重新上传vendor/composer/目录下的所有文件
4. 验证路由写法匹配
- 如果你用的是字符串格式路由(比如
Route::get('/brand', 'backend\BrandController@index')),确认路径大小写和目录完全匹配 - 如果你用的是类名格式路由(比如
Route::get('/brand', [BrandController::class, 'index'])),确认顶部已经引入了正确的控制器:use App\Http\Controllers\Backend\BrandController;,路径大小写完全匹配
5. 检查文件权限
确认app/Http/Controllers/目录权限为755,目录下的所有控制器文件权限为644,权限不足会导致系统无法读取控制器文件,误判为不存在
内容的提问来源于stack exchange,提问作者ALAA ELDIN
相关产品推荐
相关产品推荐

