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
どうすれば修正できますか?
はい、試しましたが、問題は解決しました。最初に追加する方法がわからない人(私のような)の場合:
app/config/config.yml
assetic:
bundles: []
bundles: []
//バンドル名を入力たとえば、バンドルがAcme\DemoBundle
、次の操作を行います
assetic:
bundles: [ AcmeDemoBundle ]
AcmeDemoBundle
の前後に引用符はありません。それでおしまい。 (Symfony2)
デフォルトでasseticにバンドルを含めたい場合は、bundles: []
例:
assetic:
debug: "%kernel.debug%"
use_controller: false
#bundles: [ ]
#Java: /usr/bin/Java
その場で決定を下す必要がある場合は、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)