"AsseticBundle 구성에 myBundle 추가"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

이 문제를 어떻게 해결할 수 있습니까?


:이 질문에 두 제안 된 솔루션을 확인 stackoverflow.com/questions/10376946/...
— 카를로스 그라나도

이 질문에 대한 답을 실제로 선택하는 것은 goo id입니다.
— tftd 2013 년

답변:


176

예, 나는 시도했고 그것은 나를 위해 문제를 해결했습니다. 처음에 추가하는 방법을 모르는 사람 (나와 같은)의 경우 :

  1. 편집하다 app/config/config.yml
  2. 다음으로 이동 assetic:
  3. 자산 아래 : 이동 bundles: []
  4. 과에 bundles: []// 당신의 번들 이름을 입력

예를 들어 번들이 인 Acme\DemoBundle경우 다음을 수행하십시오.

assetic:
   bundles: [ AcmeDemoBundle ]

주위에 따옴표가 없습니다 AcmeDemoBundle. 그게 다야. (심포니 2)


14
필요한 경우 추가 번들은 쉼표로 구분해야합니다.
— Zoot

1
나는 symfony2.3을 사용하고 있으며, 번들을 배열에 추가했지만 여전히 동일한 예외가 있습니다. 번들에 주석을 달더라도 동일한 예외 메시지가 표시됩니다. 어떻게해야합니까?
— Dev DOS

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

Assetic에 기본적으로 번들이 포함되도록하려면 줄에 주석 (# 사용)을 할 수 있습니다. bundles: []

전의:

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

번들에 댓글을 달면 부작용이 있습니까?
— Permana 2013-10-21

내가 생각할 수있는 것은 없습니다. 프로젝트의 모든 번들을 자산에 포함시킬뿐입니다. 앱 속도가 느려질 수 있지만 개인적으로 속도 차이를 알아 차리지 못했습니다.
— Tivie 2013-10-21

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
Bundle 상속을 사용하여 다른 Bundle을 확장하는 경우 특히 유용합니다.
— 독감

3

번들에 번들을 추가해야합니다. app / config / config.yml 파일의 [] assetic : 섹션 행 (symfony 2.1)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.