在Web目录中安装供应商资源

时间:2013-05-22 11:43:52

标签: symfony assetic

我在我的Resources包中有一个名为vendor的目录,其中包含JavaScript库等。其中一些供应商包含图像。

我可以使用以下资产导入css / less / js文件:

assetic:
    assets:
        flot:
            inputs:
                - @MyBundle/Resources/vendor/flot/jquery.flot.js
                - @MyBundle/Resources/vendor/flot/jquery.flot.time.js
            filters:
                - ?yui_js

但是,如果供应商包含图像,我不知道如何将它们放入web/目录。

我不想手动对它们进行符号链接。

1 个答案:

答案 0 :(得分:3)

Assetic的资产集合,如

assetic:
    assets:
        collection_name:
            inputs:
                 - ...
            output: 
                 - desired_filename # relative to assetic.output_path
            filters:
                 - ?lessphp          # scss, optipng, jpegoptim ... whatever
                                     # the ? (question mark) prevents the 
                                     # filter to be applied in dev mode 

也可以包含图片。但你必须逐一指定它们

assetic:
    assets:

        [...] 

        my_image:
            inputs:
                 - /path/to/image/image.png
            output: 
                 - images/smushed_image.png  
            filters:
                 - optipng    

        my__second_image:
            inputs:
                 - /path/to/image/image2.jpg
            output: 
                 - images/smushed_image2.jpg
            filters:
                 - jpegoptim       

然后使用assetic:dump命令将它们写入(并编译/刷新)到您的Web文件夹。 --no-debug选项可防止资产为每个包中的每个文件创建调试文件。用于生产系统或者如果您有其他调试方式(即令人敬畏的Source Maps

app/console assetic:dump --no-debug

使用这样的包:

 {% stylesheets '@collection_name' %}
     <link rel="stylesheet" type="text/css" href="{{ asset_url }}" />
 {% endstylesheets %}

 {% image '@my_image' %}
     <img src="{{ asset_url }}" alt="Example"/>
 {% endimage %}