Как я могу исправить исключение symfony2 «Добавить myBundle в конфиг ассемблера»?

84

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

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

  • 0
    Проверьте этот вопрос и два предложенных решения: stackoverflow.com/questions/10376946/…
  • 0
    Было бы хорошо, если бы вы на самом деле выбрали ответ на этот вопрос.
Теги:
twig

4 ответа

169
Лучший ответ

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

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

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

assetic:
   bundles: [ AcmeDemoBundle ]

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

  • 5
    спасибо за пошаговую инструкцию
  • 14
    При необходимости дополнительные пакеты должны быть разделены запятыми.
Показать ещё 3 комментария
23

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

Пример:

assetic:
    debug:          "%kernel.debug%"
    use_controller: false
    #bundles:        [ ]
    #java: /usr/bin/java
  • 0
    Есть ли побочные эффекты для комментирования пакетов?
  • 0
    Ни о чем я не могу думать. Это просто делает сборку включающей все пакеты в ваш проект. Может быть, это может замедлить ваше приложение, но лично я никогда не заметил различий в скорости.
10

Иногда вам нужно принимать решения "на лету", тогда вы можете использовать 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);

        /* ... */
    }
}

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

  • 1
    Это особенно полезно, если вы расширяете другой Bundle, используя наследование Bundle.
3

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню