You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中artisan serve异常读取public/plugins文件且LoginController找不到

问题排查方案

问题现象

  • 执行php artisan serve后,控制台会读取并显示public/plugins文件夹内的文件名,本地浏览器访问时也直接展示该目录内容
  • 点击登录按钮,系统提示LoginController找不到,但该控制器文件实际存在
  • 项目此前正常运行6个多月,问题突发

已尝试措施

  • 更新composer、npm,无效
  • 更换新的Wamp Server,问题依旧
  • 使用PHP 7.4.9版本,同版本下其他Laravel项目运行artisan serve正常
  • 清除配置缓存、应用缓存及Cookie,无效果
  • 近期未对代码做重大改动

针对性排查步骤

  1. 检查Web服务器入口与目录索引配置

    • 确认public/.htaccess文件(Apache环境)是否包含禁用目录索引的配置:确保Options -Indexes存在,且规则正确指向index.php作为请求入口(参考标准Laravel .htaccess配置)
    • 若使用nginx,检查站点配置文件,确保try_files $uri $uri/ /index.php?$query_string;规则正确,且未开启autoindex on;
  2. 验证LoginController的命名空间与路由映射

    • 打开app/Http/Controllers/LoginController.php,确认文件开头的命名空间为namespace App\Http\Controllers;
    • 检查routes/web.php中的登录路由,确保控制器引用正确,例如:
      Route::post('/login', [App\Http\Controllers\LoginController::class, 'login']);
      
    • 若使用路由组,确认组内的命名空间配置未覆盖控制器的正确命名空间
  3. 重新生成类自动加载映射
    执行以下命令,强制更新Composer的类映射文件:

    composer dump-autoload -o
    
  4. 清除路由缓存
    执行命令清除路由缓存,避免旧路由规则干扰:

    php artisan route:clear
    
  5. 检查目录权限

    • Windows环境:确保WAMP运行用户对public目录及子文件夹有读取权限,且未开启文件夹的“目录浏览”权限
    • Linux环境:设置public目录权限为755,避免过宽权限导致目录内容被列出:
      chmod -R 755 public/
      
  6. 排查是否有代码误处理plugins目录
    检查项目中是否有中间件、路由规则或配置文件,将public/plugins设置为静态资源目录或添加了匹配该路径的路由,导致请求被错误解析为目录展示而非通过Laravel入口处理

内容的提问来源于stack exchange,提问作者Pratik Lalan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 17:30:41