2013-03-13 57 views
1

壓縮迭代文件結構我有一個目錄結構如下所示:在Phing與的YUICompressor

-css 
---subdir1 
------common.css 
---subdir2 
------common.css 
------custom.css 
---subdir3 
------common.css 
------styles.css 

我想環路Phing每個目錄,隨後的每個文件再壓縮到內的每個單一的哈希文件名目錄使用YUI壓縮機。其結果將是這個樣子:

-css 
---subdir1 
------1973a613f7c87b03dbe589e6935a09bd.min.css 
---subdir2 
------1973a613f7c87b03dbe589e6935a09bd.min.css 
---subdir3 
------1973a613f7c87b03dbe589e6935a09bd.min.css 

因此,我需要知道每一個我,所以我能輸出我的精縮腳本它內部的目錄。

這些是我的兩個目標:

<target name="minify"> 

    <echo msg="Minifying CSS and JS files with YUI at ${yuicompressor}" /> 

    <foreach param="filename" absparam="absfilename" target="runyui"> 

     <fileset dir="${publicdir}/css"> 
      <include name="*.css" /> 
      <include name="**/*.css" /> 
     </fileset> 
    </foreach> 

</target> 

<target name="runyui"> 

    <filehash file="${abspathtopwd}" hashtype="MD5" propertyname="filehash" /> 

    <echo msg="java -jar ${yuicompressor} -v --line-break 5000 --type css ${absfilename} >> ${abspathtopwd}/${filehash}.min.css" /> 

    <exec command="java -jar ${yuicompressor} -v --line-break 5000 --type css ${absfilename} >> ${abspathtopwd}/${filehash}.min.css" /> 

</target> 

其中:

  • 的YUICompressor是YUI的壓縮機罐子路徑
  • publicdir僅僅是我的應用程序的絕對路徑公共目錄
  • abspathtopwd是我希望與Phing當前的foreach循環(如果你喜歡或PWD)使用「當前迭代的目錄」

我怎樣才能得到當前工作目錄的屬性?我所能看到的我所能訪問的是文件本身的相對路徑和絕對路徑。

注意:我知道這個當前的解決方案會爲每個輸入文件創建一個新文件,但這正是我想要用abspathtopwd修復的。

謝謝!

回答

1

任何有興趣在此問題,檢查出this post,害得我:

<foreach param="dir" absparam="absdir" target="minify.directory"> 

    <fileset dir="${publicdir}/css"> 
     <type type="dir" /> 
     <depth max="0" min="0" /> 
    </fileset> 

</foreach> 

這讓我迭代時,從而通過相對和絕對目錄名,而不是指定一個目錄限制文件名。