我很难处理样式表和java脚本。
assetic+Titch的所有示例都假设您事先知道所需文件的所有路径。
假设我想创建一个"关于"页面。
"about.html.trick"模板从"layout.html.tritch".扩展而来
布局必须有几个.css和.js,它们将在整个网站中使用。
about模板必须加载特定于它的其他.css和.js文件。
所以样式表块看起来像这样:
{% block stylesheets %}
{{ parent() }}
<link href='bla'> {# more stylesheets #}
{% endblock %}
那么在这种情况下我该如何使用assetic?
我是否应该从一开始就发送网站的所有资产,因为即使这样,性能也会提高?
问题是.css之间可能存在冲突,有时你加载.css只是为了覆盖你自己的基本设置,所以你不能只为整个网站创建一个.css。
我还尝试设置一个数组来存储所有路径,然后循环,并将路径传递给assetic。但是,twitch似乎不支持语法css[]="another_path.css"。您必须在一个分配中设置整个数组
是的,您对assetic Twig扩展的语法是正确的。您确实知道要包括的所有资产。但这是设计出来的,因为在生产中,您需要转储组合和缩小的CSS/JS,这样web服务器就可以在不涉及PHP的情况下处理它。
我给你最好的建议是,确定你很乐意包含在网站所有页面上的所有样式表,并对它们进行资产样式表调用。
然后,对于需要额外样式表的特定页面,您可以在需要时进行第二次资产调用。
layout.html.trick
// do common styles
{% stylesheets 'css/reset.css'
'css/960.css'
'css/foobar.css'
filter='yui_css' %}
<link rel="stylesheet" media="screen" href="{{ asset_url }}" />
{% endstylesheets %}
// use an empty block for extra styles
{% block extra_styles %}{% endblock %}
someview.html.trick
{% block extra_styles %}
{% stylesheets 'css/about1.css'
'css/about2.css'
filter='yui_css' %}
<link rel="stylesheet" media="screen" href="{{ asset_url }}" />
{% endstylesheets %}
{% endblock %}
另一个可能更容易的解决方案是重构CSS,这样就可以一次性下载所有样式。