是否可以使用Assetic有条件地加载资产?
例如(peusocode):
load resource1.js
load resource2.js
if condition = true
load resource3.js
endif
output combined.js
答案 0 :(得分:3)
不可能因为资产文件是在服务器端编译的,所以资产在运行时无法访问变量的值。
解决方案可能是添加第二个资产标签
// the first assetic tag
{% if condition %}
// an other assetic tag
{% endif %}
答案 1 :(得分:0)
我遇到了完全相同的问题。正如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 %}