Domanda

È possibile caricare le risorse condizionatamente con Assetico?

Ad esempio (peusocode):

load resource1.js
load resource2.js

if condition = true
    load resource3.js
endif

output combined.js
È stato utile?

Soluzione

No, non è possibile perché i file assetici sono compilati sul lato server, quindi Assetic non ha accesso al valore della variabile in fase di esecuzione.

Una soluzione potrebbe essere quella di aggiungere un secondo tag assetico

// the first assetic tag

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

Altri suggerimenti

Mi sono imbattuto esattamente allo stesso problema. Come Julesbou Già menzionato, è necessario aggiungere diversi tag assetici.

Il mio particolare scenario era quello di rendere un background diverso a seconda dell'ambiente : grigio chiaro per il Dev ambiente e bianco per il Prod ambiente.

Ho usato due file CSS: Basic.css e debug.css

Questa è la mia soluzione (Symfony 2) (all'interno dei tag in un modello di ramoscello per 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 %}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top