2012-08-31 8 views
81

Cuando estoy tratando de utilizar la etiqueta RAMITA {% javascript %} para enlazar a mi archivo .js me regreso con la siguiente excepción:¿Cómo arreglo la excepción "Add myBundle a la configuración de asseticBundle" symfony2?

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

Mi index.html.twig parece:

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

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

Mi Bundle ya está presente en el archivo de configuración cuando lo hago:

php app/console config:dump-reference assetic 

¿Cómo puedo solucionar esto?

+0

Comprobar esta pregunta y las dos soluciones propuestas: http://stackoverflow.com/questions/10376946/assetic-unable-to-find-file –

+0

Sería bueno que seleccionas una respuesta a esta pregunta. – tftd

Respuesta

169

Sí me trataron y resolvieron el problema para mí. Para alguien (como yo) que no sabe cómo añadir inicialmente luego simplemente:

  1. edición app/config/config.yml
  2. luego ir a assetic:
  3. bajo Assetic: ir a bundles: []
  4. y en bundles: [] // escriba su nombre de lote

por ejemplo, si el paquete es Acme\DemoBundle, a continuación, hacer lo siguiente

assetic: 
    bundles: [ AcmeDemoBundle ] 

Sin cotizaciones alrededor de AcmeDemoBundle. Eso es. (Symfony2)

+4

gracias por la instrucción paso a paso – bumerang

+14

Si es necesario, los paquetes adicionales deben estar separados por comas. – Zoot

+1

Estoy usando symfony2.3, agregué mi paquete a la matriz pero todavía tengo la misma excepción. Incluso cuando comento los paquetes obtengo el mismo mensaje de excepción. ¿Que debería hacer? –

3

es necesario agregar su paquete a paquete: [] fila de Assetic: sección en la aplicación/config/config.yml (Symfony 2.1)

24

Si desea Assetic incluir sus paquetes por defecto, se puede comentar (con #) los haces de líneas: []

ejemplo:

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

¿hay algún efecto secundario para los paquetes de comentarios? – Permana

+0

Ninguno que se me ocurra. Simplemente hace que assetic incluya todos los paquetes en su proyecto. Tal vez puede ralentizar su aplicación, pero personalmente nunca noté ninguna diferencia en la velocidad. – Tivie

10

A veces se necesita para tomar decisiones sobre la marcha, entonces puede usar el uso DependencyInjection.

Por ejemplo, para loads and manages configuration:

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

     /* ... */ 
    } 
} 

Se puede utilizar una lógica más compleja para manipular la configuración (en límites razonables)

+1

Esto es particularmente útil si extiende otro paquete utilizando herencia de paquete. – flu

Cuestiones relacionadas