Загрузка ресурсов условно с Assetic - PullRequest
2 голосов
/ 07 декабря 2011

Можно ли условно загрузить активы с помощью Assetic?

Например (peusocode):

load resource1.js
load resource2.js

if condition = true
    load resource3.js
endif

output combined.js

Ответы [ 2 ]

3 голосов
/ 08 декабря 2011

Нет, это невозможно, поскольку сборочные файлы компилируются на стороне сервера, поэтому сборочные файлы не имеют доступа к значению вашей переменной во время выполнения.

Решением может быть добавление второго тега сборки

// the first assetic tag

{% if condition %}
    // an other assetic tag
{% endif %}
0 голосов
/ 29 декабря 2014

Я столкнулся с точно такой же проблемой.Как уже упоминалось julesbou , необходимо добавить несколько сборочных тегов.

Мой конкретный сценарий заключался в том, чтобы отобразить другой фон в зависимости от среды : светло-серый для среды DEV и белый для PROD среда.

Я использовал два файла CSS: basic.css и debug.css

Это мое решение (Symfony 2) (внутри тегов вшаблон ветки для 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 %}
...