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