web-dev-qa-db-ger.com

Wie behebe ich die symfony2-Ausnahme "Add myBundle to the asseticBundle config"?

Wenn ich versuche, die TWIG {% javascript %} Tag zum Verlinken auf mein .js Datei es gibt mich mit der folgenden Ausnahme zurück:

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".

Mein index.html.twig sieht aus wie :

{% javascripts 'CompetitiongameBundle/Resources/views/public/js/*'%}
    <script type="text/javascript" src="{{ asset_url }}" ></script>
{% endjavascripts %}
Hello {{ name }}!

<a href='{{ nexturl }}' >Login</a>

Mein Bundle ist in der Konfigurationsdatei bereits vorhanden, wenn ich Folgendes tue:

php app/console config:dump-reference assetic

Wie kann ich das beheben?

84
Vimal Basdeo

Ja, ich habe es versucht und es hat das Problem für mich gelöst. Für jemanden (wie mich), der anfangs nicht weiß, wie er hinzufügen soll:

  1. edit app/config/config.yml
  2. dann geh zu assetic:
  3. unter assetic: gehe zu bundles: []
  4. und in bundles: [] // Geben Sie Ihren Bündelnamen ein

zum Beispiel, wenn Ihr Bündel Acme\DemoBundle, dann mache folgendes

assetic:
   bundles: [ AcmeDemoBundle ]

Keine Anführungszeichen um AcmeDemoBundle. Das ist es. (Symfony2)

174

Wenn Sie möchten, dass Assetic Ihre Bundles standardmäßig einschließt, können Sie die Zeile bundles: [] Mit # kommentieren.

ex:

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

Manchmal müssen Sie Entscheidungen spontan treffen, dann können Sie DependencyInjection verwenden.

Zum Beispiel nach lädt und verwaltet die Konfiguration :

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

        /* ... */
    }
}

Sie können komplexere Logik verwenden, um die Konfiguration zu manipulieren (in angemessenen Grenzen).

Sie müssen Ihr Bundle zu Bundle hinzufügen: [] Zeile von Assetic: Abschnitt in der Datei app/config/config.yml (Symfony 2.1)

3
user1041503