web-dev-qa-db-ja.com

symfony2例外「asseticBundle構成にmyBundleを追加する」を修正するにはどうすればよいですか?

TWIG {% javascript %}タグを使用して.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

どうすれば修正できますか?

84
Vimal Basdeo

はい、試しましたが、問題は解決しました。最初に追加する方法がわからない人(私のような)の場合:

  1. 編集app/config/config.yml
  2. その後、assetic:
  3. 資産の下:bundles: []
  4. およびbundles: [] //バンドル名を入力

たとえば、バンドルがAcme\DemoBundle、次の操作を行います

assetic:
   bundles: [ AcmeDemoBundle ]

AcmeDemoBundleの前後に引用符はありません。それでおしまい。 (Symfony2)

174

デフォルトでasseticにバンドルを含めたい場合は、bundles: []

例:

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

その場で決定を下す必要がある場合は、use 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);

        /* ... */
    }
}

より複雑なロジックを使用して構成を操作できます(合理的な制限内)

バンドルをバンドルに追加する必要があります:app/config/config.ymlファイルのassetic:セクションの[]行(symfony 2.1)

3
user1041503