我尝试使用以下方法从部分注入Javascript和CSS:
function onStart()
{
$this->addCss('assets/css/style1.css');
$this->addCss('assets/css/style2.css');
$this->addJs('assets/js/javascript1.js');
$this->addJs('assets/js/javascript2.js');
}
在我的布局上,我正在使用{%styes%}和{%scripts%},但是仅成功注入了javascript。没有注入CSS。
我还使用了{%put scripts%}和{%put styles%},但是只再次注入了脚本。
如果我直接在我的layout.htm css上使用上面的代码,但我需要我的局部函数。这可能吗?
答案 0 :(得分:4)
似乎{% styles %}
在尊重层次结构。
表示如果您在分部之前使用{% styles %}
,则会不为该分部注入CSS。
因此您在{% styles %}
之后出现的部分中没有它的信息,因此不会从中注入样式。
例如。您在部分代码段onStart
中包含了css / js
然后,
这将起作用
<!-- it will work -->
{% partial 'site/meta' %} <- you are injecting styles in code section
{% styles %} <- its after partial
这将不起作用
<!-- it will not work -->
{% styles %} <- its before partial
{% partial 'site/meta' %} <- you are injecting styles in code section
因此,我们只需确保包含/注入所有样式,然后使用{% styles %}
,使其包含有关css包含/注入的所有信息。然后可以使用CSS渲染所有样式标签。
如有疑问,请发表评论。