Pregunta

¿Es posible cargar activos condicionalmente con Assetic?

Por ejemplo (Peusocode):

load resource1.js
load resource2.js

if condition = true
    load resource3.js
endif

output combined.js
¿Fue útil?

Solución

No, no es posible porque los archivos Assetic se compilan en el lado del servidor, por lo que Assetic no tiene acceso al valor de su variable en tiempo de ejecución.

Una solución podría ser agregar una segunda etiqueta assética

// the first assetic tag

{% if condition %}
    // an other assetic tag
{% endif %}

Otros consejos

Encontré exactamente el mismo problema. Como julesbou Ya se mencionó, es necesario agregar varias etiquetas asséticas.

Mi escenario de caso particular era representar un fondo diferente dependiendo del entorno. : gris claro para el Enchufe ambiente y blanco para el PINCHAR ambiente.

Usé dos archivos CSS: Basic.css y debug.css

Esta es mi solución (Symfony 2) (dentro de las etiquetas en una plantilla de ramita para HTML5:

{# Common CSS stylesheets--------------------------------#}
{% stylesheets
    '@XStitchPublicBundle/Resources/public/css/basic.css'
%}
    <link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
{# ----------------------------------------------------- #}
{#
    Conditional CSS stylesheet. Depend on the environment
#}

{% set environment = app.environment %}
{% if environment == 'dev' %}
    {# Condition: Dev environment#}
    {% stylesheets
        '@XStitchPublicBundle/Resources/public/css/debug.css'
    %}
        <link rel="stylesheet" href="{{ asset_url }}" />
    {% endstylesheets %}
{% endif %}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top