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


84

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

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


この質問と2つの提案された解決策を確認してください:stackoverflow.com/questions/10376946/…–
Carlos Granados

この質問への回答を実際に選択するのは間違いありません。
tftd 2013年

回答:


176

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

  1. 編集 app/config/config.yml
  2. 次にに行きます assetic:
  3. 資産の下で:に行く bundles: []
  4. とにbundles: []//あなたのバンドルの名前を入力します

たとえば、バンドルがの場合Acme\DemoBundle、次のようにします

assetic:
   bundles: [ AcmeDemoBundle ]

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


14
必要に応じて、追加のバンドルをコンマで区切る必要があります。
Zoot 2014

1
symfony2.3を使用していて、バンドルをアレイに追加しましたが、それでも同じ例外があります。バンドルにコメントしても、同じ例外メッセージが表示されます。私は何をすべきか?
Dev DOS 2015

prodに移行していて、この問題が発生した場合は、キャッシュをクリーンアップしてアセットアセットをダンプすることを忘れないでください: "php app / console cache:clear --env = prod--no-debug"および "php app / console Assetic:dump --env = prod --no-debug "
Bertrand

@Dev DOSは解決策を見つけましたか..?
Euphor08 2016年

24

アセットにデフォルトでバンドルを含める場合は、行にコメント(#を付けて)できます bundles: []

例:

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

バンドルにコメントすることによる副作用はありますか?
ペルマナ2013年

私が考えることができるものはありません。プロジェクト内のすべてのバンドルをアセットに含めるだけです。アプリの速度が低下する可能性がありますが、個人的には速度の違いに気づきませんでした。
Tivie 2013年

10

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

        /* ... */
    }
}

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


1
これは、バンドル継承を使用して別のバンドルを拡張する場合に特に役立ちます。
インフルエンザ

3

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.