我正在尝试将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的文档,并且过滤器不能开箱即用,它需要提供依赖项。如果像UglifyCss和CssMin这样的过滤器需要依赖项,那么我如何知道需要哪些依赖项以及如何提供它们呢?
答案 0 :(得分: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