"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.