Я работаю над интеграцией Assetic в приложение, которое я создаю. Приложение следует шаблону MVC, но не использует никаких фреймворков. Twig используется для шаблонов.Активы, изображения и кеширование
Я прочитал документацию и просмотрел несколько helpfulblog posts.
Приложение структурирована следующим образом:
- применение
- twig_templates
- JS
- CSS
- public_html
- JS
- CSS
- изображения
прутик шаблоны визуализируются, а затем возвращаются приложением, так что это довольно прямо вперед. Папки js
и css
под папкой application
будут содержать необработанные файлы javascript и css.
Мой план состоит в том, что объединенные и мини-файлы js и css будут храниться в папках js
и css
в папке public_html.
Поскольку я не планирую оптимизировать любые изображения с помощью assetic, они будут помещены в папку images
под public_html
.
Теперь вопрос:
Я понимаю, что с помощью assetic из прута, комбинированные и уменьшенных активов может быть экспортирован в мое 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-адреса для изображения в абсолютные (т.е.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 %}
В этом случае, как я могу позволить assetic знать, что он должен сочетать в себе
childstyle.css
иmainstyle.css
и служить ему как 1 файл?