assetic.ERROR “DoctrineBundle:Collector:db.html.twig” contains an error: Unknown “profiler_dump” function

旧街凉风 提交于 2019-12-01 17:38:03

问题


I am trying to send emails with Symfony. Everything works perfect locally. But on server I get following errore in prod.log:

assetic.ERROR: The template "SecurityBundle:Collector:security.html.twig" contains an error: Unknown "profiler_dump" function in "SecurityBundle:Collector:security.html.twig" at line 180.

assetic.ERROR: The template "DoctrineBundle:Collector:db.html.twig" contains an error: Unknown "profiler_dump" function in "DoctrineBundle:Collector:db.html.twig" at line 241

These are bundles I have in composer.json

    "php": ">=5.5.9",
    "symfony/symfony": "3.1.*",
    "doctrine/orm": "^2.5",
    "doctrine/doctrine-bundle": "^1.6",
    "doctrine/doctrine-cache-bundle": "^1.2",
    "symfony/swiftmailer-bundle": "^2.3",
    "symfony/monolog-bundle": "3.0.1",
    "symfony/polyfill-apcu": "^1.0",
    "sensio/distribution-bundle": "^5.0",
    "sensio/framework-extra-bundle": "^3.0.2",
    "incenteev/composer-parameter-handler": "^2.0",
    "friendsofsymfony/user-bundle": "~2.0@dev",
    "justinrainbow/json-schema": "~2.0",
    "jms/serializer-bundle": "1.1.0",
    "lexik/jwt-authentication-bundle": "1.6.0",
    "symfony/assetic-bundle": "^2.8",
    "stof/doctrine-extensions-bundle": "^1.2",
    "guzzlehttp/guzzle": "~6.0",
    "knplabs/knp-paginator-bundle": "^2.5",
    "mapado/mysql-doctrine-functions": "1.*",
    "hampe/zurb-ink-bundle": "^2.2",

This are bundles in AppKernel class

  $bundles = [
        new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
        new Symfony\Bundle\SecurityBundle\SecurityBundle(),
        new Symfony\Bundle\TwigBundle\TwigBundle(),
        new Symfony\Bundle\MonologBundle\MonologBundle(),
        new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
        new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
        new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
        new FOS\UserBundle\FOSUserBundle(),
        new AdminBundle\AdminBundle(),
        new APIBundle\APIBundle(),
        new JMS\SerializerBundle\JMSSerializerBundle(),
        new Lexik\Bundle\JWTAuthenticationBundle\LexikJWTAuthenticationBundle(),
        new Symfony\Bundle\AsseticBundle\AsseticBundle(),
        new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(),
        new NotificationBundle\NotificationBundle(),
        new Hampe\Bundle\ZurbInkBundle\HampeZurbInkBundle(),
    ];

回答1:


By default, AsseticBundle will try to handle the templates of all enabled bundles which leads to errors when enabled bundles ship with templates that rely on features not being loaded in the prod environment. You can solve your issue by explicitly listing all bundles that should be handled by Assetic using the assetic.bundles option.




回答2:


profiler_dump method comes from Symfony's WebProfilerBundle. This bundle is not applied to Kernel in production mode, and it should not be (WebProfiler toolbar should be enabled only during development). You should remove those calls from twig template.




回答3:


I've solved this by creating twig extension defining empty function profiler_dump and loading this twig extension only in production.



来源:https://stackoverflow.com/questions/42898882/assetic-error-doctrinebundlecollectordb-html-twig-contains-an-error-unknown

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!