"MyBundle'ı asseticBundle yapılandırmasına ekle" symfony2 istisnasını nasıl düzeltebilirim?


84

Dosyama {% javascript %}bağlanmak için TWIG etiketini kullanmaya çalıştığımda .js, aşağıdaki istisna ile bana geri dönüyor:

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

Benim index.html.twiggörünüyor gibi:

{% javascripts 'CompetitiongameBundle/Resources/views/public/js/*'%}
    <script type="text/javascript" src="{{ asset_url }}" ></script>
{% endjavascripts %}
Hello {{ name }}!

<a href='{{ nexturl }}' >Login</a>

Paketim şu durumlarda yapılandırma dosyasında zaten mevcut:

php app/console config:dump-reference assetic

Bunu nasıl düzeltebilirim?


Bu soruyu ve önerilen iki çözümü kontrol edin: stackoverflow.com/questions/10376946/…
Carlos Granados

Aslında bu soruya bir cevap seçmeniz goo id olacaktır.
tftd

Yanıtlar:


176

Evet denedim ve sorunu benim için çözdü. Başlangıçta nasıl ekleneceğini bilmeyen (benim gibi) biri için o zaman sadece:

  1. Düzenle app/config/config.yml
  2. sonra şuraya git assetic:
  3. asetik altında: git bundles: []
  4. ve bundles: []// paket adınızı yazın

örneğin paketiniz ise Acme\DemoBundle, aşağıdakileri yapın

assetic:
   bundles: [ AcmeDemoBundle ]

Etrafta alıntı yok AcmeDemoBundle. Bu kadar. (Symfony2)


14
Gerekirse ek paketler virgülle ayrılmalıdır.
Zoot

1
Symfony2.3 kullanıyorum, bundle'ımı diziye ekledim ama yine de aynı istisnaya sahibim. Paketleri yorumladığımda bile aynı istisna mesajını alıyorum. Ne yapmalıyım?
Dev DOS

Üretim sürümüne geçiyorsanız ve bu sorunu yaşıyorsanız, önbelleğinizi temizlemeyi ve asetik varlıklarınızı boşaltmayı unutmayın: "php uygulaması / konsol önbelleği: temizle --env = prod --no-debug" ve "php app / console assetic: dump --env = prod --no-debug "
Bertrand

@Dev DOS bir çözüm buldunuz mu ..?
Euphor08

24

Gruplarınızı varsayılan olarak dahil etmek istiyorsanız, satıra yorum yapabilirsiniz (# ile) bundles: []

ör:

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

demetleri yorumlamanın herhangi bir yan etkisi var mı?
Permana

Aklıma gelen hiçbir şey. Sadece projenizdeki tüm paketleri dahil etmenizi sağlar. Belki uygulamanızı yavaşlatabilir, ancak şahsen hızda herhangi bir fark görmedim.
Tivie

10

Bazen anında kararlar almanız gerekir, ardından DependencyInjection'ı kullanabilirsiniz .

Örneğin , yapılandırmayı yüklemek ve yönetmek için :

<?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);

        /* ... */
    }
}

Yapılandırmayı değiştirmek için daha karmaşık mantık kullanabilirsiniz (makul sınırlar içinde)


1
Bu, özellikle Bundle mirasını kullanarak başka bir Paketi genişletirseniz yararlıdır.
grip

3

Paketinizi şu gruba eklemeniz gerekir: [] assetic satırı: app / config / config.yml dosyasındaki bölüm (symfony 2.1)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.