Как исправить "Добавить myBundle в конфигурацию asseticBundle config" symfony2?

Когда я пытаюсь использовать тег 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>

Мой пакет уже присутствует в файле конфигурации, когда я делаю:

php app/console config:dump-reference assetic

Как я могу это исправить?

Ответ 1

Да, я попробовал, и он решил проблему для меня. Для кого-то (например, для меня), который сначала не знает, как добавить:

  • edit app/config/config.yml
  • затем перейдите к assetic:
  • по усмотрению: перейдите к bundles: []
  • и в bundles: []//введите имя вашего пакета

например, если ваш пакет Acme\DemoBundle, выполните следующие

assetic:
   bundles: [ AcmeDemoBundle ]

Нет кавычек вокруг AcmeDemoBundle. Это. (Symfony2)

Ответ 2

Если вы хотите, чтобы assetic включал ваши пакеты по умолчанию, вы можете прокомментировать (С#) строки: []

Пример:

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

Ответ 3

Иногда вам нужно принимать решения "на лету", тогда вы можете использовать DependencyInjection.

Например, загружает и управляет конфигурацией:

<?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);

        /* ... */
    }
}

Вы можете использовать более сложную логику для управления конфигурацией (в разумных пределах)

Ответ 4

Вам нужно добавить свой пакет для связывания: [] row of assetic: section в файле app/config/config.yml(symfony 2.1)