質問

資産を条件付きでasseticでロードすることは可能ですか?

たとえば、(PeusoCode):

load resource1.js
load resource2.js

if condition = true
    load resource3.js
endif

output combined.js
役に立ちましたか?

解決

いいえ、Assetic Filesがサーバー側にコンパイルされているため、不可能であるため、Asseticは実行時に変数の値にアクセスできません。

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

// the first assetic tag

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

他のヒント

まったく同じ問題に出会いました。として ジュレスブー すでに述べたように、いくつかのアセチックタグを追加する必要があります。

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

2つのCSSファイルを使用しました。 BASIC.CSSdebug.css

これは私のソリューションです(Symfony 2)(HTML5のTwigテンプレートのタグ内:

{# 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 %}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top