如何修复“将 myBundle 添加到asseticBundle 配置”symfony2 异常?

Posted

技术标签:

【中文标题】如何修复“将 myBundle 添加到asseticBundle 配置”symfony2 异常?【英文标题】:How do I fix "Add myBundle to the asseticBundle config" symfony2 exception? 【发布时间】:2012-08-26 17:13:18 【问题描述】:

当我尝试使用 TWIG % javascript % 标记链接到我的 .js 文件时,它返回给我,但出现以下异常:

An exception has been thrown during the compilation of a template ("You must add CompetitiongameBundle to the assetic.bundle config to use the % javascripts % tag in CompetitiongameBundle:game:index.html.twig.") in "CompetitiongameBundle:game:index.html.twig".

我的index.html.twig 看起来像:

% javascripts 'CompetitiongameBundle/Resources/views/public/js/*'%
    <script type="text/javascript" src=" asset_url " ></script>
% endjavascripts %
Hello  name !

<a href=' nexturl ' >Login</a>

当我这样做时,我的 Bundle 已经存在于配置文件中:

php app/console config:dump-reference assetic

我该如何解决这个问题?

【问题讨论】:

检查这个问题和两个建议的解决方案:***.com/questions/10376946/… 如果你真的选择了这个问题的答案,那就太好了。 【参考方案1】:

是的,我试过了,它为我解决了这个问题。对于最初不知道如何添加的人(比如我),然后只是:

    编辑app/config/config.yml 那就去assetic: 资产下:去bundles: []bundles: [] //输入你的包名

例如,如果您的捆绑包是 Acme\DemoBundle,则执行以下操作

assetic:
   bundles: [ AcmeDemoBundle ]

AcmeDemoBundle 周围没有引号。而已。 (Symfony2)

【讨论】:

如果需要,额外的捆绑包应该用逗号分隔。 我正在使用 symfony2.3,我将我的包添加到数组中,但我仍然有同样的异常。即使我评论捆绑包时,我也会收到相同的异常消息。我该怎么办? 如果您正在迁移到 prod 并遇到此问题,请不要忘记清理缓存并转储资产:" php app/console cache:clear --env=prod --no -debug" 和 "php app/consoleassetic:dump --env=prod --no-debug" @Dev DOS 你找到解决方案了吗?【参考方案2】:

如果您希望assetic 默认包含您的捆绑包,您可以注释(带#)行bundles: []

例如:

assetic:
    debug:          "%kernel.debug%"
    use_controller: false
    #bundles:        [ ]
    #java: /usr/bin/java

【讨论】:

评论包有副作用吗? 我想不到。它只是让资产包含您项目中的所有捆绑包。也许它会减慢您的应用程序,但我个人从未注意到速度上有任何差异。【参考方案3】:

有时您需要即时做出决定,然后您可以使用DependencyInjection。

例如给loads and manages configuration:

<?php

namespace You\ExampeBundle\DependencyInjection;

use Symfony\Component\DependencyInjection\ContainerBuilder;

/* ... */

class YouExampeExtension extends Extension


    /* ... */

    public function load(array $configs, ContainerBuilder $container)
    
        /* ... */

        $aAsseticBundle = $container->getParameter('assetic.bundles');
        $aAsseticBundle[] = 'YouExampeBundle';
        $aAsseticBundle[] = 'AnotheBundle';
        $container->setParameter('assetic.bundles', $aAsseticBundle);

        /* ... */
    

您可以使用更复杂的逻辑来操作配置(在合理的范围内)

【讨论】:

如果您使用 Bundle 继承扩展另一个 Bundle,这将特别有用。【参考方案4】:

你需要将你的 bundle 添加到 bundle: [] row ofassetic: app/config/config.yml 文件中的部分 (symfony 2.1)

【讨论】:

以上是关于如何修复“将 myBundle 添加到asseticBundle 配置”symfony2 异常?的主要内容,如果未能解决你的问题,请参考以下文章

如何修复漏洞

如何修复WMI

PHP网站漏洞怎么修复 如何修补网站程序代码漏洞

如何修复这些漏洞? (npm audit fix 无法修复这些漏洞)

如何修复AppScan漏洞

如何在DOS环境下修复系统