Symfony 2 ассетические пути

я не понимал, как работают ассетические пути ..

{% block stylesheets %}
            <link href="{{ asset('/bundles/dproc/css/base.css') }}" type="text/css" rel="stylesheet" />
        {% endblock %}

Мои CSS и изображения находятся в каталоге / bundles / dproc /. Код, который я показал ниже, работает, но я не могу понять, зачем мне использовать функцию актива, я могу сделать это так и получить тот же результат

{% block stylesheets %}
            <link href="/bundles/dproc/css/base.css" type="text/css" rel="stylesheet" />
        {% endblock %}

Так что же делает актив? Или как мой путь должен выглядеть с функцией актива?


person Tiko M    schedule 06.10.2013    source источник
comment
Кроме того, считали ли вы, что ваше приложение может переместиться на другой уровень каталогов, поэтому вместо myapp.com это может быть myapp.com/foo/bar. Здесь пригодится функция asset, поскольку она добавляет не только /, но вместо этого базовый путь приложения (/foo/bar)   -  person Jovan Perovic    schedule 06.10.2013


Ответы (1)


Потому что тебе, наверное, не стоит даже так его использовать. Вероятно, вам следует использовать Assetic с css следующим образом:

{% block stylesheets %}
    {% stylesheets
    '/bundles/dproc/css/base.css' {# this will just get base.css #}
    '/bundles/dproc/css/mycustomdir/* {# this will find all css files in that dir #}
    %}
    <link href="{{ asset_url }}" rel="stylesheet">
    {% endstylesheets %}
{% endblock %}

Настроив его таким образом (с конфигурацией по умолчанию), в среде dev вы получите то же самое, что и если бы вы просто использовали <link .... > без ассетика. Но в производственной среде весь ваш stylesheets ассетический блок будет объединен в один файл, чтобы уменьшить количество запросов.

Позже вы можете настроить некоторые минификаторы css и javascript и запустить их в производственной среде. Итак, когда вы переключитесь на производство, у вас будут красивые и экономичные css и javascript, а в среде разработки у вас будет именно то, что вы ожидали, если бы вы этого не сделали. вообще использовать ассетик.

Более того, если вы используете less или sass или что-то, что нужно предварительно скомпилировать, вы можете просто включить эти файлы и указать ассетику автоматически перекомпилировать их при изменении.

person Igor Pantović    schedule 06.10.2013