2013-01-04 32 views
4

如何使用Ant连接CSS文件列表,使用@imports在1个外部CSS文件中指定?如何使用Ant连接外部CSS @import文件中的CSS文件

指定CSS文件和文件以便看起来像这样的CSS文件:

@import url('header.css'); 
@import url('footer.css'); 
@import url('module/module1.css'); 
@import url('module/module2.css'); 

我想蚂蚁在CSS中指定的所有文件加载和CONCAT到单个文件。这可能吗?

回答

3

您可以使用Ant loadfile任务执行此操作,然后执行concat

下面是一个示例,如果您的带有导入语句的css文件仅包含导入语句(每行一个),则linecontainsregexp可能是可选的。 (如果这个CSS文件比较复杂,那么下面就需要细化。)

<loadfile property="master.css" srcfile="master.css"> 
    <filterchain> 
     <linecontainsregexp> 
      <regexp pattern="@import url" /> 
     </linecontainsregexp> 
     <replaceregex pattern=".*'(.*)'.*" replace="\1," /> 
     <striplinebreaks/> 
    </filterchain> 
</loadfile> 

的,其结果是一个包含了逗号分隔的所需顺序的css文件列表的属性。然后可以使用Ant filelist来指定它们的拼接:

<concat destfile="all.css"> 
    <filelist files="${master.css}" /> 
</concat> 
+0

工作得非常好。万分感谢!你也解决了另一个“不可能”的问题;一个文件列表(这是一个真正的文件)在连接时似乎不遵守顺序。将文件列表作为逗号分隔的属性变量很聪明。 – Pelle