2

Asseticで条件付きでアセットをロードすることは可能ですか?

例(peusocode):

load resource1.js
load resource2.js

if condition = true
    load resource3.js
endif

output combined.js
4

2 に答える 2

3

資産ファイルはサーバー側でコンパイルされるため、それは不可能です。そのため、資産は実行時に変数の値にアクセスできません。

解決策は、2 番目の資産タグを追加することです

// the first assetic tag

{% if condition %}
    // an other assetic tag
{% endif %}
于 2011-12-08T12:17:16.327 に答える
0

私はまったく同じ問題に遭遇しました。julesbouで述べたように、複数のアセット タグを追加する必要があります。

私の特定のケース シナリオは、環境に応じて異なる背景をレンダリングすることでした。DEV環境でライト グレー、 PROD環境では白です。

basic.cssdebug.cssの 2 つの 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 %}
于 2014-12-29T19:52:50.850 に答える