如何修复“添加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
我怎样才能解决这个问题 ?
是的,我尝试了,它解决了我的问题。 对于最初不知道如何添加的人(如我),只需:
- 编辑
app/config/config.yml
- 然后去
assetic:
- 在资产下:去
bundles: []
- 并在
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: