我正在尝试将样式表添加到数组中,以便当twig模板扩展到第二级和第三级时,聚合样式将继续执行。
本主题与Combining Assetic Resources across inherited templates
相关从 config.yml ,我创建了一个全局数组mystyles
,以便我们可以在渲染过程中“冒泡”时添加必要样式列表。
twig:
debug: %kernel.debug%
strict_variables: %kernel.debug%
globals:
mystyles: []
从我的操作中调用的第一个模板来自 CommunicatorBundle / Resources / views / Admin / Workspace.html.twig ,我为此页面设置了名为admin.workspace.css
的特定样式。
{% extends "DJCommunicatorBundle::base.html.twig" %}
{% set mystyles = ["@DJCommunicatorBundle/Resources/public/css/admin.workspace.css"]|merge(mystyles) %}
它扩展了 CommunicatorBundle / Resources / views / base.html.twig ,它有自己的要求data-table.css
。
{% extends "DJSharedBundle::base.html.twig" %}
{% set mystyles = ["@DJCommunicatorBundle/Resources/public/css/data-table.css" ]|merge(mystyles) %}
最后,我们加载最外面的模板 SharedBundle / Resources / views / base.html.twig ,它有自己的样式,可以在所有其他模板之前添加。
<head>
{% set mystyles = ['@DJSharedBundle/Resources/public/css/global.css', '@DJSharedBundle/Resources/public/css/grid.990.9-col.css']|merge(mystyles) %}
{% stylesheets {{ mystyles }} %}
<link rel="stylesheet" href="{{ asset_url }}" type="text/css" />
{% endstylesheets %}
</head>
然而,它在这一行打破了
{% stylesheets {{ mystyles }} %}
尽管这种类型的测试打印出我期望的正确顺序的数组
{{ mystyles|join(', ') }}
似乎{% stylesheets %}
标签需要类似下面的snippit(可以理解的不是数组对象,而是以空格分隔的分隔字符串列表)。
{% stylesheets
'@DJSharedBundle/Resources/public/css/global.css'
'@DJSharedBundle/Resources/public/css/grid.990.9-col.css'
'@DJCommunicatorBundle/Resources/public/css/data-table.css'
'@DJCommunicatorBundle/Resources/public/css/admin.workspace.css'
%}
<link rel="stylesheet" href="{{ asset_url }}" type="text/css" />
{% endstylesheets %}
即使这样,我也尝试将字符串设置为如此长的值并打印出来,但这也不起作用:
{%
set str = "@DJSharedBundle/Resources/public/css/global.css
@DJSharedBundle/Resources/public/css/grid.990.9-col.css
@DJCommunicatorBundle/Resources/public/css/data-table.css
@DJCommunicatorBundle/Resources/public/css/admin.workspace.css"
%}
{% stylesheets {{ str }} %}
我觉得全球应该是一个可行的解决方案,尽管目前还不行。希望我很亲密。什么可能解决这个问题?
答案 0 :(得分:4)
现在无法做到这一点,因为Assetic 静态会分析您的模板,以查找您在那里定义的任何资产。支持这些动态案例的是路线图。