Kiedy próbuję użyć {% javascript %}
tagu TWIG, aby połączyć się z moim .js
plikiem, zwraca mnie z następującym wyjątkiem:
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".
Mój index.html.twig
wygląd wygląda tak:
{% javascripts 'CompetitiongameBundle/Resources/views/public/js/*'%}
<script type="text/javascript" src="{{ asset_url }}" ></script>
{% endjavascripts %}
Hello {{ name }}!
<a href='{{ nexturl }}' >Login</a>
Mój pakiet jest już obecny w pliku konfiguracyjnym, gdy:
php app/console config:dump-reference assetic
Jak mogę to naprawić?
Odpowiedzi:
Tak, próbowałem i to rozwiązało problem. Dla kogoś (takiego jak ja), który początkowo nie wie, jak dodać, po prostu:
app/config/config.yml
assetic:
bundles: []
bundles: []
// wpisz nazwę swojego pakietuna przykład jeśli twój pakiet to
Acme\DemoBundle
, wykonaj następujące czynnościBrak cytatów
AcmeDemoBundle
. Otóż to. (Symfony2)źródło
Jeśli chcesz domyślnie dołączać swoje pakiety, możesz skomentować (z #) wiersz
bundles: []
dawny:
assetic: debug: "%kernel.debug%" use_controller: false #bundles: [ ] #java: /usr/bin/java
źródło
Czasami musisz podejmować decyzje w locie, wtedy możesz użyć DependencyInjection .
Na przykład do ładowania i zarządzania konfiguracją :
<?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); /* ... */ } }
Możesz użyć bardziej złożonej logiki do manipulowania konfiguracją (w rozsądnych granicach)
źródło
Musisz dodać swój pakiet do pakietu: [] wiersz assetic: sekcja w pliku app / config / config.yml (symfony 2.1)
źródło