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

使用rap2hpoutre/laravel-log-viewer遇目录重复显示问题求解决方案

解决rap2hpoutre/laravel-log-viewer多子目录重复显示问题

这个问题确实有不少开发者遇到过,核心原因是包的递归目录遍历逻辑未处理循环引用(比如符号链接、嵌套目录指向),导致同一目录被重复遍历输出,以下是几个可行的解决办法:

  • 临时应急修复(直接修改包文件)
    找到项目中包目录下的 src/LogViewer.php,定位到处理目录遍历的方法(比如 getFiles 或递归扫描的函数),添加已访问目录的记录逻辑,避免重复遍历:

    // 在递归遍历函数中新增参数记录已访问目录
    private function scanDir($dir, &$visited = [])
    {
        // 获取目录真实路径,跳过已访问的目录
        $realDir = realpath($dir);
        if (in_array($realDir, $visited)) {
            return [];
        }
        $visited[] = $realDir;
    
        // 保留原有遍历文件、子目录的逻辑...
    }
    

    注意:这种修改会在包更新时被覆盖,仅适合临时使用。

  • 长期稳定方案(Fork仓库自定义修改)

    1. 将 rap2hpoutre/laravel-log-viewer 仓库fork到自己的GitHub账号
    2. 在fork的仓库中修改上述遍历逻辑,增加循环避免的处理
    3. 修改项目的 composer.json,引用自己的fork版本:
      "repositories": [
          {
              "type": "vcs",
              "url": "https://github.com/你的用户名/laravel-log-viewer"
          }
      ],
      "require": {
          "rap2hpoutre/laravel-log-viewer": "dev-你的分支名"
      }
      
    4. 运行 composer update rap2hpoutre/laravel-log-viewer 安装修改后的版本
  • 调整日志目录结构
    检查你的日志目录是否存在符号链接指向父目录、嵌套目录循环引用的情况,直接调整目录结构去掉这类循环,也能从根源解决重复显示问题。

另外,你可以去该包的GitHub Issues页面搜索"directory loop"或"duplicate directories",能找到其他开发者的相关讨论和现成的修复PR,直接参考使用即可。

内容的提问来源于stack exchange,提问作者San Tack

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 15:33:18