如何修复“添加myBundle到asseticBundleconfiguration”symfony2exception?

当我尝试使用TWIG {% javascript %}标记链接到我的.js文件时,它返回了以下exception:

 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> 

当我这样做时,我的包已经存在于configuration文件中:

 php app/console config:dump-reference assetic 

我怎样才能解决这个问题 ?

是的,我尝试了,它解决了我的问题。 对于最初不知道如何添加的人(如我),只需:

  1. 编辑app/config/config.yml
  2. 然后去assetic:
  3. 在资产下:去bundles: []
  4. 并在bundles: []键入您的包名称

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

 assetic: bundles: [ AcmeDemoBundle ] 

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

如果您希望资产默认包含捆绑包,则可以使用#注释捆绑包:[]

例如:

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

有时你需要dynamic决定,那么你可以使用DependencyInjection 。

例如要加载和pipe理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); /* ... */ } } 

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

你需要添加你的捆绑包:[]在app / config / config.yml文件(symfony 2.1)中的assetic: