assetic.ERROR" DoctrineBundle:收集器:db.html.twig"包含错误:未知" profiler_dump"功能

时间:2017-03-20 08:31:13

标签: symfony assetic symfony-3.1

我正在尝试使用Symfony发送电子邮件。一切都在当地完美。但是在服务器上我得到了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

这些是我在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",

这是AppKernel类

中的包
  $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(),
    ];

3 个答案:

答案 0 :(得分:7)

默认情况下,AsseticBundle将尝试处理所有已启用的捆绑包的模板,当启用的捆绑包附带依赖于prod环境中未加载的功能的模板时,这会导致错误。您可以使用assetic.bundles option明确列出应由Assetic处理的所有捆绑包来解决您的问题。

答案 1 :(得分:1)

profiler_dump方法来自Symfony的WebProfilerBundle。 此捆绑包不会在生产模式下应用于内核,它不应该是(WebProfiler工具栏只应在开发期间启用)。您应该从twig模板中删除这些调用。

答案 2 :(得分:0)

我已经通过创建定义空函数profiler_dump的树枝扩展并仅在生产环境中加载此树枝扩展来解决了这一问题。