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

Laravel5.7环境下Debugbar视图显示0 templates were rendered问题

运行环境
  • PHP 版本:7.4.29
  • Laravel 版本:5.7.29
  • 应用状态:未完成版本升级的存量旧应用
  • 故障表现:Laravel Debugbar 首次页面加载可正常展示,点击任意链接、切换标签页、触发交互按钮时,Debugbar 会短暂闪现当前请求的视图模板记录,随即视图区域清空,固定提示0 templates were rendered,故障可稳定复现。
根因说明

该故障是半升级状态Laravel 5.7项目的典型兼容问题:

  • 升级过程中遗留的冗余中间件会在请求生命周期的terminate阶段提前重置视图工厂实例,清空Debugbar已经收集到的视图渲染记录
  • Debugbar默认的视图收集器绑定优先级低于业务服务提供者,会被自定义View类绑定覆盖,导致跳转、AJAX请求的视图事件监听失效
  • 默认使用session存储Debugbar数据时,半升级项目的session写入顺序冲突会导致新请求数据覆盖已收集完成的视图记录
修复步骤

按以下顺序操作即可解决问题:

  1. 强制重写视图收集器绑定
    打开app/Providers/AppServiceProvider.php,在register()方法最开头加入以下代码,确保Debugbar视图收集器在所有服务之前注册,不被业务服务覆盖:
if (env('APP_DEBUG') && class_exists(\Barryvdh\Debugbar\ServiceProvider::class)) {
    $this->app->singleton(\Barryvdh\Debugbar\DataCollector\ViewCollector::class, function ($app) {
        return new \Barryvdh\Debugbar\DataCollector\ViewCollector($app['view'], true);
    });
}
  1. 调整中间件顺序,清理冗余中间件
    打开app/Http/Kernel.php,找到$middlewareGroups['web']数组:
  • 将\Barryvdh\Debugbar\Middleware\InjectDebugbar::class挪到数组最后一位,保证它在所有视图渲染、业务逻辑执行完成后再注入和收集数据
  • 排查数组中所有非Laravel 5.7官方的视图相关自定义中间件,尤其是包含view()->reset()、$app->instance('view', ...)这类重置视图实例逻辑的旧版本遗留中间件,直接移除即可。
  1. 修改Debugbar配置
    如果还没发布Debugbar配置文件,先执行命令生成配置:
    php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"
    打开config/debugbar.php修改以下配置项:
'collectors' => [
    // 确认视图收集器开启
    'views' => true,
    'ajax'  => [
        // 关闭AJAX请求的调试数据栈延迟加载
        'use_stack' => false,
    ],
],
// 调试数据存储改为文件存储,避免session写入顺序冲突导致数据覆盖
'storage' => [
    'enabled'    => true,
    'driver'     => 'file',
    'path'       => storage_path('debugbar'),
    'connection' => null,
    'provider'   => '',
],
  1. 清除所有运行时缓存
    依次执行以下命令清除缓存:
php artisan config:clear
php artisan view:clear
php artisan cache:clear
php artisan route:clear

本地调试环境不要执行config:cache、route:cache这类缓存生成命令,静态缓存会导致Debugbar的动态配置失效。

修复完成后刷新页面操作任意交互元素,视图收集区会稳定展示所有渲染的模板文件,不会再出现0 templates were rendered的提示。

内容的提问来源于stack exchange,提问作者Krzysztof F.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 13:27:17