2013-05-22 30 views
2

我在我的软件包Resources中包含一个名为vendor的目录,其中包含JavaScript库等。其中一些供应商包含图像。在网络目录中安装供应商资源

我可以用资产导入CSS /少/ js文件:

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

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

我宁愿不手动将它们符号链接。

回答

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:转储命令让他们写(并编译/ smushed)到您的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 %}