我正在尝试使用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(),
];
答案 0 :(得分:7)
默认情况下,AsseticBundle将尝试处理所有已启用的捆绑包的模板,当启用的捆绑包附带依赖于prod
环境中未加载的功能的模板时,这会导致错误。您可以使用assetic.bundles
option明确列出应由Assetic处理的所有捆绑包来解决您的问题。
答案 1 :(得分:1)
profiler_dump
方法来自Symfony的WebProfilerBundle。
此捆绑包不会在生产模式下应用于内核,它不应该是(WebProfiler工具栏只应在开发期间启用)。您应该从twig模板中删除这些调用。
答案 2 :(得分:0)
我已经通过创建定义空函数profiler_dump
的树枝扩展并仅在生产环境中加载此树枝扩展来解决了这一问题。