2012-02-09 3 views
0

Я работаю над интеграцией 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 файл?

ответ

Смежные вопросы