Assetic Symfony2 less+compress过滤器

5

有没有一种方法可以使Assetic自动编译压缩.less文件?

我尝试了以下配置:

assetic:
debug:          "%kernel.debug%"
use_controller: true
bundles:        ['BloggerBlogBundle', "FOSCommentBundle"]
#java: /usr/bin/java
filters:
    cssrewrite: ~
    less:
      node: /home/igor/nvm/v0.8.16/bin/node
      node_paths: [/home/igor/nvm/bin/node_modules]
      apply_to: "\.less$"
    yui_css:
      jar: %kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar
      apply_to: "\.css$|\.less"

但是这样做会导致.css文件被压缩,.less文件被编译。我无法同时实现两者:编译并压缩我的.less文件。

1个回答

9

以下是同时编译和压缩.less文件的配置文件和twig代码:

config.yml

# Assetic Configuration
assetic:
    debug:          %kernel.debug%
    use_controller: false
    java: %java_path%
    filters:
        less:
            node:       %node_base_path%
            node_paths: [%node_lib_path%, %node_modules_path%]
        cssrewrite: ~
        yui_css:
            jar: %kernel.root_dir%%jar_file%
        yui_js:
            jar: %kernel.root_dir%%jar_file%

在我的Twig中:

{% block stylesheets %}
    {% stylesheets
        '@MyBundle/Resources/public/css/event.less'
        'css/colorpicker.css'
        filter='less,?yui_css'
        output='build/event_layout_2cols.css'
    %}
        <link href="{{ asset_url }}" rel="stylesheet" media="screen" />
    {% endstylesheets %}
{% endblock %}

以下是编译和压缩的命令:

./app/console assetic:dump --env=prod --no-debug

希望能帮到您!

3
在我意识到必须在运行 assetic:dump 前清除生产环境的缓存之后,我才解决了这个问题。此后,上述方法对我有效。 - fazy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接