Symfony 2 调试工具栏不显示
Symfony 2 debug toolbar not showing
Symfony 调试工具栏未显示。
我是运行 app_dev.php 环境下的网站。 config_dev.yml 文件包含以下行。
web_profiler:
toolbar: true
intercept_redirects: false
app_dev/php 没有任何 IP 限制。它在开发环境中运行 AppKernel。此外,AppKernel 包含以下行。
$bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
主要问题可能是 HTML 标记,但它同时具有开始和结束 <body>
标记。我什至试图删除所有 HTML,只留下几个 HTML 标签,但没有成功。
还有什么我可以尝试的吗?
也许某些文件可能会丢失。我该如何检查?
这不是全新的 Symfony 安装。
仔细检查您的 <body>
标签是否有结束 </body>
标签。根据我的经验,当工具栏突然消失时,这是因为由于格式错误 HTML 而导致关闭的正文标记丢失,或者因为控制器正在返回一个仅包含纯文本内容的 Response
对象。
确保您可以勾选此清单中的所有项目符号:
- 您正在通过 app_dev.php 访问页面来使用开发模式(适合您)
工具栏通过在生成的页面上查找终止 </body>
标记将自身插入到页面中。如果您的页面中没有 </body>
标记,则工具栏将不会出现(如上述答案所示)。示例树枝文件作为参考:
行 {% extends '::base.html.twig' %}
将扩展 app/Resources/views/base.html.twig
,它将默认值 <body>...</body>
注入到您的自定义 twig 文件中。
{% extends '::base.html.twig' %}
{% block body %}
Hello!
{% endblock %}
您已在 AppKernel.php
中启用分析器
public function registerBundles(){
$bundles = ...
if (in_array($this->getEnvironment(), array('dev', 'test'))) {
$bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
...
}
return $bundles;
}
您已启用 javascript。
彻底检查最近添加的包(特别是自定义包)。因为Cases like this会导致问题。
我遇到了一个大型(或多或少)应用程序的问题,其中工具栏未显示在占用大量内存的页面上。原来我的 php 内存限制已经用完了。我将我的 php.ini 文件中的 memory_limit
设置为足够的内容并对其进行了排序。
如果您将环境设置为 dev,它应该会在底部显示调试工具栏
编辑 web/app.php 如下;
$kernel = new AppKernel('dev', true);
我最近在 SF3.4 中得到了一个旧项目,在我的例子中,由于 config.yml 文件
中的以下键,调试工具栏没有显示
framework:
[...]
profiler:
collect: false
我评论了那两行,它又起作用了。
尝试重新安装工具栏
composer remove profiler
composer require --dev profiler
检查配置
bin/console debug:config framework profiler
Symfony 调试工具栏未显示。
我是运行 app_dev.php 环境下的网站。 config_dev.yml 文件包含以下行。
web_profiler:
toolbar: true
intercept_redirects: false
app_dev/php 没有任何 IP 限制。它在开发环境中运行 AppKernel。此外,AppKernel 包含以下行。
$bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
主要问题可能是 HTML 标记,但它同时具有开始和结束 <body>
标记。我什至试图删除所有 HTML,只留下几个 HTML 标签,但没有成功。
还有什么我可以尝试的吗?
也许某些文件可能会丢失。我该如何检查?
这不是全新的 Symfony 安装。
仔细检查您的 <body>
标签是否有结束 </body>
标签。根据我的经验,当工具栏突然消失时,这是因为由于格式错误 HTML 而导致关闭的正文标记丢失,或者因为控制器正在返回一个仅包含纯文本内容的 Response
对象。
确保您可以勾选此清单中的所有项目符号:
- 您正在通过 app_dev.php 访问页面来使用开发模式(适合您)
工具栏通过在生成的页面上查找终止
</body>
标记将自身插入到页面中。如果您的页面中没有</body>
标记,则工具栏将不会出现(如上述答案所示)。示例树枝文件作为参考:行
{% extends '::base.html.twig' %}
将扩展app/Resources/views/base.html.twig
,它将默认值<body>...</body>
注入到您的自定义 twig 文件中。{% extends '::base.html.twig' %} {% block body %} Hello! {% endblock %}
您已在
中启用分析器AppKernel.php
public function registerBundles(){ $bundles = ... if (in_array($this->getEnvironment(), array('dev', 'test'))) { $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle(); ... } return $bundles; }
您已启用 javascript。
彻底检查最近添加的包(特别是自定义包)。因为Cases like this会导致问题。
我遇到了一个大型(或多或少)应用程序的问题,其中工具栏未显示在占用大量内存的页面上。原来我的 php 内存限制已经用完了。我将我的 php.ini 文件中的 memory_limit
设置为足够的内容并对其进行了排序。
如果您将环境设置为 dev,它应该会在底部显示调试工具栏
编辑 web/app.php 如下;
$kernel = new AppKernel('dev', true);
我最近在 SF3.4 中得到了一个旧项目,在我的例子中,由于 config.yml 文件
中的以下键,调试工具栏没有显示framework:
[...]
profiler:
collect: false
我评论了那两行,它又起作用了。
尝试重新安装工具栏
composer remove profiler
composer require --dev profiler
检查配置
bin/console debug:config framework profiler