4

如何在 Symfony 3.2 中通过 Assetic 配置资产版本控制?

在 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 %}

不幸的是,这并没有将 version 参数附加到资产 url,尽管 Symfony 关于资产的官方文档是这样建议的。

4

2 回答 2

0

从未使用过“子包”,尝试不使用:

parameters:
    app_version: 1.0.0

framework:
    assets:
        version:   '%app_version%'
        version_format: '%%1$s?%%2$s'
        base_urls: ['%your_assets_urls%']
于 2017-04-14T08:27:04.407 回答
0

经过进一步研究,我设法解决了这个问题:调用asset()函数时需要指定包名,如下所示:

{% 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'
于 2017-05-15T15:57:48.253 回答