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?
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:
app/config/config.yml
assetic:
bundles: []
bundles: []
// Geben Sie Ihren Bündelnamen einzum Beispiel, wenn Ihr Bündel Acme\DemoBundle
, dann mache folgendes
assetic:
bundles: [ AcmeDemoBundle ]
Keine Anführungszeichen um AcmeDemoBundle
. Das ist es. (Symfony2)
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
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)