Очистка кеша активов по параметризованному URL-адресу с помощью Assetic

Как я могу настроить управление версиями активов через Assetic в Symfony 3.2?

В Symfony 2 этого можно было добиться, настроив версию пакета в framework:templating, но в 3 это уже не так.

Я пытался использовать следующую конфигурацию:

framework:
  assets:
    packages:
      css:
        version: '2'
        version_format: '%%s?version=%%s'

При использовании этого в шаблоне:

{% stylesheets output="css/global.css" "@AppBundle/Resources/assets/scss/frontend.scss" filter="scss" filter="?uglifycss" package="css" %}
    <link rel="stylesheet" href="{{ asset(asset_url) }}">
{% endstylesheets %}

К сожалению, это не добавляет параметр версии к URL ресурса, несмотря на то, что официальная документация Symfony по ресурсам предлагает.


person Olia.Bn    schedule 13.04.2017    source источник


Ответы (2)


Никогда не использовал "подпакеты", попробуйте без:

parameters:
    app_version: 1.0.0

framework:
    assets:
        version:   '%app_version%'
        version_format: '%%1$s?%%2$s'
        base_urls: ['%your_assets_urls%']
person COil    schedule 14.04.2017

Мне удалось решить эту проблему после некоторых дальнейших исследований: нужно указать имя пакета при вызове функции assets(), например:

{% stylesheets output="css/global.css" "@AppBundle/Resources/assets/scss/frontend.scss" filter="scss" filter="?uglifycss" %}
     <link rel="stylesheet" href="{{ asset(asset_url, 'css') }}">
{% endstylesheets %}

Имя пакета "css" должно быть определено в конфигурации:

framework:
  assets:
  packages:
    css:
      version: '2'
      version_format: '%%s?version=%%s'
person Olia.Bn    schedule 15.05.2017