我正在努力将Assetic集成到我正在构建的应用程序中。该应用程序遵循 MVC 模式,但不使用任何框架。Twig用于模板。
该应用程序的结构如下:
- 应用
- 树枝模板
- js
- css
- public_html
- js
- css
- 图片
树枝模板被渲染然后由应用程序返回,所以这很简单。文件夹下的andjs
文件夹将保存原始的 javascript 和 css 文件。css
application
我的计划是将组合和缩小的 js 和 css 文件存储在public_html 文件夹下的js
and文件夹中。css
由于我不打算使用assetic优化任何图像,它们将直接放在images
下面的文件夹中public_html
。
现在的问题:
我知道通过使用树枝中的资产,可以将组合和缩小的资产导出到我的 public_html 目录:
{% stylesheets '/path/to/sass/main.sass' filter='sass,?yui_css' output='css/all.css' %} <link href="{{ asset_url }}" type="text/css" rel="stylesheet" /> {% endstylesheets %}
在这种情况下,
css/all.css
每次呈现模板时都会重新生成文件吗?为了使应用程序可移植(它可以使用虚拟主机托管,或者甚至可以在文件夹中托管)并确保事情在具有路由 URL 之类的站点中工作
http://site.com/controller/action
,assetic 是否提供无论如何将图像的 URL “重写”为绝对 URL(即images/a.jpg
进入http://mysite.com/images/a.jpg
)?使用嵌套模板时资产是否有效?
parent.twig:
<!DOCTYPE html> <html> <head> {% block head %} <link rel="stylesheet" href="mainstyle.css" /> <title>{% block title %}{% endblock %} - My Webpage</title> {% endblock %} </head> <body> </body> </html>
child.twig:
{% extends "parent.twig" %} {% block title %}Index{% endblock %} {% block head %} {{ parent() }} <link rel="stylesheet" href="childstyle.css" /> {% endblock %}
在这种情况下,我怎样才能让资产知道它应该合并
childstyle.css
并将mainstyle.css
其作为 1 个文件提供?