Включение активов из представлений Twig с использованием AsseticBundle - PullRequest
0 голосов
/ 16 апреля 2011

В Symfony 1.4 я использую для включения только необходимые ресурсы:

apps / myApp / config / view.yml (общие ресурсы, которые будут использоваться на каждой странице)

stylesheets:   [main.css]
javascripts:    [lib/jquery.js, lib/jquery.qtip.js, backend/main.js]

apps / myApp / modules / someModule / templates / someTemplateSuccess.php (ресурсы только для этого представления, частичные и т. Д.)

<?php use_stylesheet('backend/datagrid.css') ?>
<?php use_javascript('backend/datagrid.js') ?>

и, наконец, связывание этихв apps / myApp / templates / layout.php :

<?php include_stylesheets() ?>
<?php include_javascripts() ?>

Итак, как это сделать с помощью AsseticBundle в представлениях Twig?

Я действительно запутался... спасибо!

1 Ответ

3 голосов
/ 17 апреля 2011

Хорошо, я попал сюда:

https://github.com/kriswallsmith/symfony-sandbox/commit/f1fc1d0cf2fe69660f94f33719a4508d6e9e25ae

и оно РАБОТАЕТ!

это выглядит так:

SRC / MySite / MyBundle / Ресурсы / CSS / datagrid.css

чтобы включить его в представление:

SRC / MySite / MyBundle / Ресурсы / мнение / MyViews / myview.html.twig

{% block stylesheets %}
    {% stylesheets '@MySiteMyBundleBundle/Resources/css/datagrid.css' %}
        <link href="{{ asset_url }}" type="text/css" rel="stylesheet" />
    {% endstylesheets %}
{% endblock %}

и, наконец, давайте напечатаем это:

Приложение / Ресурсы / просмотров / base.html.twig

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>{% block title %}Lol!{% endblock %}</title>
        {% block stylesheets %}{% endblock %}
        <link rel="shortcut icon" href="{{ asset('favicon.ico') }}" />
    </head>
    <body>
        {% block body %}{% endblock %}
        {% block javascripts %}{% endblock %}
    </body>
</html>

Отлично!

UPDATE:

Я до сих пор не знаю почему, но:

{% stylesheets '@MySiteMyBundleBundle/Resources/css/*.css' output='css/all.css' %}
    <link href="{{ asset_url }}" type="text/css" rel="stylesheet" />
{% endstylesheets %}

Работает только при установке отладки на false, поэтому лучший способ сделать это - настроить ее:

приложение / Config / config.yml

# Assetic Configuration
assetic:
    debug:          false
    use_controller: true
    write_to: %kernel.root_dir%/../web
    filters:
        cssrewrite: ~
...