Lorsque j'essaie d'utiliser le TWIG {% javascript %}
tag pour créer un lien vers mon .js
fichier, il me renvoie avec l'exception suivante:
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".
Ma index.html.twig
ressemble à :
{% javascripts 'CompetitiongameBundle/Resources/views/public/js/*'%}
<script type="text/javascript" src="{{ asset_url }}" ></script>
{% endjavascripts %}
Hello {{ name }}!
<a href='{{ nexturl }}' >Login</a>
Mon Bundle est déjà présent dans le fichier de configuration lorsque je le fais:
php app/console config:dump-reference assetic
Comment puis-je réparer cela ?
Oui, j'ai essayé et cela a résolu le problème pour moi. Pour quelqu'un (comme moi) qui ne sait pas comment ajouter, puis juste:
app/config/config.yml
assetic:
bundles: []
bundles: []
// saisissez le nom de votre forfaitpar exemple, si votre forfait est Acme\DemoBundle
, puis procédez comme suit
assetic:
bundles: [ AcmeDemoBundle ]
Pas de guillemets autour de AcmeDemoBundle
. C'est ça. (Symfony2)
Si vous voulez qu'assetic inclue vos bundles par défaut, vous pouvez commenter (avec #) la ligne bundles: []
ex:
assetic:
debug: "%kernel.debug%"
use_controller: false
#bundles: [ ]
#Java: /usr/bin/Java
Parfois, vous devez prendre des décisions à la volée, alors vous pouvez utiliser use DependencyInjection .
Par exemple pour charge et gère la 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);
/* ... */
}
}
Vous pouvez utiliser une logique plus complexe pour manipuler la configuration (dans des limites raisonnables)
Vous devez ajouter votre bundle à bundle: [] ligne d'assetic: section dans le fichier app/config/config.yml (symfony 2.1)