8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

我的分析器工具栏未显示在 symfony 4.3.1 中

ProfoundHypnotic 1月前

113 0

在我的 .env 文件中,我已将我的应用环境指定为 dev,并将 debug 指定为 true,如下所示:APP_ENV=devAPP_DEBUG=true 在我的 config/packages/dev/web_profiler.yaml 文件中,我有以下内容:

在我的 .env 文件中,我已指定我的应用环境为 dev,并将 debug 指定为 true,如下所示:

APP_ENV=dev
APP_DEBUG=true

在我的 config/packages/dev/web_profiler.yaml 文件中,有以下内容:

web_profiler:
    toolbar: true
    intercept_redirects: false

framework:
    profiler: { only_exceptions: false }

内部的路由 config/routes/dev/web_profiler.yaml 似乎很好:

web_profiler_wdt:
    resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml'
    prefix: /_wdt

web_profiler_profiler:
    resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml'
    prefix: /_profiler

因此,当我运行服务器时, symfony server:start 一切正常,但分析器没有出现。我是否错过了 Symfony 中启用该功能的某些东西?

需要澄清的是,该页面输出的是具有适当内容的正确 HTML 页面。只是没有显示分析器。


我的基本树枝模板:

<!DOCTYPE html>
<html lang="en" dir="ltr">
    <head>
        <meta charset="utf-8">
        <title>{% block title %} {% endblock %}</title>
        {{ encore_entry_script_tags('base') }}
        <link rel="icon" type="image/x-icon" href="{{ asset('build/images/favicon.ico') }}" />
        <link href="https://fonts.googleapis.com/css?family=IBM+Plex+Sans:400,500|Playfair+Display:400,700&display=swap" rel="stylesheet">
        {{ encore_entry_link_tags("base") }}
        {% block stylesheet %}{% endblock %}
    </head>
    <body {% if app.request.get('_route') == 'home' %} class='homepage' {% endif %} >
        <header>
            <div id='top-navigation' class='padding-lg__left-md padding-lg__right-md padding-lg__top-sm padding-lg__bottom-sm row row__align-center row__justify-start'>
                <span class='text-color__white text-size__small text-weight__bold margin-lg__right-lg'>Our Mission</span>
                <span class='text-color__white text-size__small text-weight__bold margin-lg__right-lg'>Our Team</span>
                <span class='text-color__white text-size__small text-weight__bold margin-lg__right-lg'>Where the Money Goes</span>
                <span class='text-color__white text-size__small text-weight__bold margin-lg__right-lg'>Community Leadership</span>
                <span class='text-color__white text-size__small text-weight__bold'>Policies</span>
                <span class='text-color__white text-size__small text-weight__bold margin-lg__left-auto icon-set'> <span class='icon size__small color__white margin-lg__right-xsm'>{{ source('@public_path'~asset('build/images/icons/feedback.svg')) }}</span>Submit Feedback</span>
            </div>
            <nav class="padding-lg__top-md padding-lg__bottom-md padding-lg__left-md padding-lg__right-md row row__align-center row__justify-start {% if app.request.get('_route') == 'home' %} homepage {% endif %}">
                <div id='logo'>
                    <a href="{{ url('home') }}">
                        <img src="{{ asset('build/images/logo_placeholder.png') }}" alt="logo">
                    </a>
                </div>
                {% if app.request.get('_route') == 'creator-register' %}

                {% else %}
                    {% if not is_granted('IS_AUTHENTICATED_FULLY') %}
                        <div class='margin-lg__left-auto'>
                            <a href="{{ url('login') }}">
                                <div class='icon-set'>
                                    <span class='icon margin-lg__right-xsm'>
                                        {{ source('@public_path'~asset('build/images/icons/user.svg')) }}
                                    </span>
                                    <span class='nav-item'>Login</span>
                                </div>
                            </a>
                        </div>
                    {% endif %}

                {% endif %}
            </nav>
        </header>
        {% if app.request.get('_route') != 'home' %} <div class='container is_top'> {% endif %}
            {% block body %} {% endblock %}
        {% if app.request.get('_route') != 'home' %} </div> {% endif %}
    </body>
</html>

Security.yaml 防火墙:

    firewalls:
            dev:
                pattern: ^/(_(profiler|wdt)|css|images|js)/
                security: false
            main:
                anonymous: true
                guard:
                    authenticators:
                        - App\Security\LoginFormAuthenticator
                logout:
                    path : logout
                remember_me:
                    secret: '%kernel.secret%'
                    lifetime: 2592000 #<- 30 days in seconds - defaults to one year if you take this out!

结果 php bin/console debug:router | grep _profiler :

  _profiler_home             ANY      ANY      ANY    /_profiler/                        
  _profiler_search           ANY      ANY      ANY    /_profiler/search                  
  _profiler_search_bar       ANY      ANY      ANY    /_profiler/search_bar              
  _profiler_phpinfo          ANY      ANY      ANY    /_profiler/phpinfo                 
  _profiler_search_results   ANY      ANY      ANY    /_profiler/{token}/search/results  
  _profiler_open_file        ANY      ANY      ANY    /_profiler/open                    
  _profiler                  ANY      ANY      ANY    /_profiler/{token}                 
  _profiler_router           ANY      ANY      ANY    /_profiler/{token}/router          
  _profiler_exception        ANY      ANY      ANY    /_profiler/{token}/exception       
  _profiler_exception_css    ANY      ANY      ANY    /_profiler/{token}/exception.css 

最后是主页控制器:

<?php
namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

class HomepageController extends AbstractController{

    /**
    * @Route("/", name="home")
    */

    public function output(){
        return $this->render('homepage/home.html.twig',[
            'title' => 'yo',
        ]);
    }
}

?>

添加 public/index.php:

<?php

use App\Kernel;
use Symfony\Component\Debug\Debug;
use Symfony\Component\HttpFoundation\Request;

require dirname(__DIR__).'/config/bootstrap.php';

if ($_SERVER['APP_DEBUG']) {
    umask(0000);

    Debug::enable();
}

if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? $_ENV['TRUSTED_PROXIES'] ?? false) {
    Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST);
}

if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? $_ENV['TRUSTED_HOSTS'] ?? false) {
    Request::setTrustedHosts([$trustedHosts]);
}

$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
帖子版权声明 1、本帖标题:我的分析器工具栏未显示在 symfony 4.3.1 中
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由ProfoundHypnotic在本站《symfony》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 远程为您调试这个问题非常困难,甚至不可能。确切的问题与您本地设置中的某些特定内容有关,无法访问您项目的人将无法准确看到问题所在。

    针对您的情况的一些常规和具体的故障排除建议:

    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
    
返回
作者最近主题: