远程为您调试这个问题非常困难,甚至不可能。确切的问题与您本地设置中的某些特定内容有关,无法访问您项目的人将无法准确看到问题所在。
针对您的情况的一些常规和具体的故障排除建议:
1. 重新安装分析器包
虽然不常见,但安装可能会失败。请确保您的分析器包没有问题。
首先将其删除( composer remove profiler
),然后重新安装: composer require --dev profiler
)。
2. 检查配置
使用 Symfony 的控制台命令来验证您的配置。
首先是内置分析器:
$ bin/console debug:config framework profiler
返回的内容如下:
Current configuration for "framework.profiler"
==============================================
only_exceptions: false
enabled: true
collect: true
only_master_requests: false
dsn: 'file:%kernel.cache_dir%/profiler'
然后对于分析器工具栏:
$ bin/console debug:config web_profiler
返回的内容类似如下:
Current configuration for extension with alias "web_profiler"
=============================================================
web_profiler:
toolbar: true
intercept_redirects: false
excluded_ajax_paths: '^/((index|app(_[\w]+)?)\.php/)?_wdt'
3. 检查容器
检查 Profiler 服务将如何实例化:
$ bin/console debug:container profiler --show-arguments
期望这样的事情发生:
Information for Service "profiler"
==================================
Profiler.
---------------- -------------------------------------------------------------------------------------
Option Value
---------------- -------------------------------------------------------------------------------------
Service ID profiler
Class Symfony\Component\HttpKernel\Profiler\Profiler
Tags monolog.logger (channel: profiler)
kernel.reset (method: reset)
Calls add, add, add, add, add, add, add, add, add, add, add, add, add, add, add, add, add
Public yes
Synthetic no
Lazy no
Shared yes
Abstract no
Autowired no
Autoconfigured no
Arguments Service(profiler.storage)
Service(monolog.logger.profiler)
1
---------------- -------------------------------------------------------------------------------------
然后对于web_toolbar:
# bin/console debug:container web_profiler.debug_toolbar --show-arguments
对于这样的事情:
Information for Service "web_profiler.debug_toolbar"
====================================================
WebDebugToolbarListener injects the Web Debug Toolbar.
---------------- ------------------------------------------------------------------------
Option Value
---------------- ------------------------------------------------------------------------
Service ID web_profiler.debug_toolbar
Class Symfony\Bundle\WebProfilerBundle\EventListener\WebDebugToolbarListener
Tags kernel.event_subscriber
container.hot_path
Public no
Synthetic no
Lazy no
Shared yes
Abstract no
Autowired no
Autoconfigured no
Arguments Service(twig)
2
Service(router.default)
^/((index|app(_[\w]+)?)\.php/)?_wdt
Service(web_profiler.csp.handler)
---------------- ------------------------------------------------------------------------
(请注意 2
,它可以启用工具栏)。
4. 检查事件调度程序。
网页调试工具栏在事件期间注入 kernel.response
。检查回调是否正确挂钩:
$ bin/console debug:event-dispatcher kernel.response
它将返回如下内容:
Registered Listeners for "kernel.response" Event
================================================
------- -------------------------------------------------------------------------------------------- ----------
Order Callable Priority
------- -------------------------------------------------------------------------------------------- ----------
#1 ApiPlatform\Core\Hydra\EventListener\AddLinkHeaderListener::onKernelResponse() 0
#2 Symfony\Component\HttpKernel\EventListener\ResponseListener::onKernelResponse() 0
#3 Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelResponse() 0
#4 Symfony\Component\WebLink\EventListener\AddLinkHeaderListener::onKernelResponse() 0
#5 Symfony\Component\Security\Http\RememberMe\ResponseListener::onKernelResponse() 0
#6 ApiPlatform\Core\HttpCache\EventListener\AddHeadersListener::onKernelResponse() -1
#7 Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelResponse() -100
#8 Symfony\Bundle\WebProfilerBundle\EventListener\WebDebugToolbarListener::onKernelResponse() -128
#9 Symfony\Component\HttpKernel\EventListener\TestSessionListener::onKernelResponse() -128
#10 Symfony\Component\HttpKernel\EventListener\DisallowRobotsIndexingListener::onResponse() -255
#11 Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelResponse() -1000
#12 Symfony\Component\HttpKernel\EventListener\StreamedResponseListener::onKernelResponse() -1024
------- -------------------------------------------------------------------------------------------- ----------
注意 item #7
,它是 Profiler 收集器(除其他内容外,它将包括 X-Debug-Token
响应中的标题,稍后将由 Web 调试工具栏检查,它是 #8
上面列表中的项目。
如果上述任何一项检查失败
您必须专注于特定部分才能找出 原因 。也许是其他一些软件包干扰了?某个配置文件有问题?
一切顺利
... 但仍然不起作用?嗯,这很奇怪。确保返回的模板有一个 </body>
标签,并且返回的响应具有 text/html
内容类型。但如果以上所有检查都通过... 它 应该可以 工作。
在评论中您说 framework.profiler.collect
在执行这些检查时将其设置为 false。
如下 config/packages/dev/web_profiler.yaml
更改将其设置为 true
framework:
profiler:
only_exceptions: false
collect: true