0

我正在尝试将AssetManager模块与 Zend Framework 2 一起使用。

我在使用过滤器时遇到问题。目前我可以将css文件与以下(在module.config.php中)结合起来:

'resolver_configs' => array(
    'collections' => array(
        'css/combined.css' => array(
            'css/a.css',
            'css/b.css'
        ),
        'paths' => array(
            __DIR__ . '/../public'
        ),
    ),
),

问题是我无法使用以下内容缩小 css 文件:

'filters' => array(
    'css/combined.css' => array(
        array(
            'filter' => 'UglifyCss'
        ),
    ),
),

我也尝试过 CssMin 过滤器,但它也没有缩小。

有关于filter的文档,并且 filter 不能开箱即用,它需要提供依赖项。如果 UglifyCss 和 CssMin 等过滤器需要依赖项,那么我如何知道需要哪些依赖项以及如何提供它们?

4

1 回答 1

0

过滤器不适用于集合。它们只能应用于单个资产。如果您希望缩小样式表集合,则必须缩小集合中的各个组件。

考虑以下配置:

'resolver_configs' => array(
    'collections' => array(
        'css/combined.css' => array(
            'css/a.css',
            'css/b.css'
        ),
        'paths' => array(
            __DIR__ . '/../public'
        ),
    ),
),

您将需要这些过滤器:

'filters' => array(
    'css/a.css' => array(
        array(
            'filter' => 'UglifyCss'
        ),
    ),
    'css/b.css' => array(
        array(
            'filter' => 'UglifyCss'
        ),
    ),
),

至于为过滤器提供依赖项,您可以查看过滤器本身的内部。它们通常包含指向所需文件的链接:https ://github.com/kriswallsmith/assetic/blob/master/src/Assetic/Filter/JSMinFilter.php#L21

于 2013-08-19T07:36:31.913 回答