Estamos construyendo un nuevo sitio web usando Symfony2, y Assetic parece muy prometedor para la gestión de los recursos, en particular de la combinación y el procesamiento de todos los js/css archivos automáticamente.

Nos wil tiene algunos de los recursos que se utilizan todo el sitio, y algunos que son específicos de determinadas páginas. También vamos a estar usando una de tres niveles heredado enfoque a las plantillas.

Hay una manera de combinar los dos conceptos, es decir, para agregar automáticamente los recursos adicionales en heredada de plantillas, de modo que todos ellos son de salida como un recurso?

InformationsquelleAutor Ken Cooper | 2011-08-05

2 Comentarios

  1. 18

    Desafortunadamente, usted no puede 🙁

    No se puede invalidar el assetic etiquetas para agregar más activos. Sin embargo, puede hacer lo siguiente:

    {% block stylesheets %}
        {% stylesheets 'your_assets_here' %}
             <link rel="stylesheet" href="{{ asset_url }}" />
        {% endstylesheets %}
    {% endblock %}

    Entonces, al ampliar la plantilla:

    {% block stylesheets %}
        {% stylesheets 'your_old_assets_here' 'your_new_assets_here' %}
             <link rel="stylesheet" href="{{ asset_url }}" />
        {% endstylesheets %}
    {% endblock %}

    En el bloque, puede utilizar parent() incluir a los padres bloquear, pero que tendría 2 enlaces a continuación: no se puede combinar lo antiguo con assetic etiqueta con el nuevo.

    Usted podría, sin embargo, hacer una ramita de macro que sería la salida de la {% hojas de estilo %} assetic etiqueta con su antiguo activos, y como datos de entrada que contiene las nuevas localizaciones de activos.

    Más info aquí.

    • Drat, yo sospechaba, como mucho. Gracias por el puntero a la ramita de macros.
    • No Assetic ejecutar en primer lugar?
    • Creo que este es un comportamiento correcto: la combinación de activos que tienen que estar en una sola página/ruta pecado no inteligente, creo. Este es exactamente el comportamiento que yo deseo. Así que, gracias por la solución sobre cómo insertar archivos en una única ruta! 🙂
  2. 23

    Que usted realmente puede hacer lo siguiente:

    En el diseño.html.ramita (o lo que su diseño es)

    {% block stylesheets %}
        {% stylesheets 'your_assets_here' %}
             <link rel="stylesheet" href="{{ asset_url }}" />
        {% endstylesheets %}
    {% endblock %}

    Y en cualquier plantilla que se extiende de diseño:

    {% block stylesheets %}
        {{ parent() }}
        {% stylesheets 'additional_assets_here' %}
             <link rel="stylesheet" href="{{ asset_url }}" />
        {% endstylesheets %}
    {% endblock %}

    Entonces no necesita volver a escribir todos los viejos activos como sugerido por Nemanja Niljkovic

    • Sí, pero (cite de Nemana Niljkovic respuesta): «pero usted tiene 2 enlaces a continuación, como no se puede combinar lo antiguo con assetic etiqueta con la nueva»
    • No hay mucho punto en la combinación de los nuevos archivos en el conjunto de hojas de estilo y scripts de los padres, debido a que frustraría el propósito del almacenamiento en caché como usted puede tener muchas de esas páginas con su propio conjunto de archivos adicionales… la combinación de ellos significaría un nuevo conjunto combinado de archivos de cada página! Decir adiós a la caché del navegador. Por lo tanto, en realidad, es mejor tener un conjunto separado de la combinación de archivos de páginas con nivel adicional de los archivos, así que al menos la más genérica conjunto de hojas de estilo y scripts siempre será almacenado en caché

Dejar respuesta

Please enter your comment!
Please enter your name here