Когда я пытаюсь использовать {% javascript %}
тег TWIG для ссылки на мой .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
Как я могу это исправить ?
Ответы:
Да, я попробовал, и это решило проблему для меня. Для кого-то (вроде меня), который изначально не знает, как добавить, просто:
app/config/config.yml
assetic:
bundles: []
bundles: []
// введите имя вашего пакетанапример, если ваш пакет
Acme\DemoBundle
, то сделайте следующееНикаких кавычек
AcmeDemoBundle
. Вот и все. (Symfony2)источник
Если вы хотите, чтобы ассетик включал ваши пакеты по умолчанию, вы можете прокомментировать (с #) строку
bundles: []
пример:
assetic: debug: "%kernel.debug%" use_controller: false #bundles: [ ] #java: /usr/bin/java
источник
Иногда вам нужно принимать решения на лету, тогда вы можете использовать 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); /* ... */ } }
Вы можете использовать более сложную логику для управления конфигурацией (в разумных пределах)
источник
Вам необходимо добавить свой пакет в строку bundle: [] раздела Assetic: в файле app / config / config.yml (symfony 2.1)
источник