Ant HTML5样板文件-处理多个CSS文件?

Ant HTML5样板文件-处理多个CSS文件?,ant,build,html5boilerplate,Ant,Build,Html5boilerplate,我有一个用html5样板构建的web应用程序,它有多个可用的皮肤 每个皮肤都包含在一个单独的css文件中,使用哪个皮肤是通过一个配置文件设置的 目前,HTML5样板构建脚本缩小并重命名了第一个皮肤,它位于style.css(默认css文件)中,它还缩小了同一文件夹中的其他两个css文件,但没有重命名它们,这将导致实时服务器上的缓存出现问题-当css文件的过期日期很长时,用户的web浏览器将无法获取对其他皮肤的更新 谁能给我一些关于如何添加额外css文件支持的提示 为了澄清,在运行构建脚本之前,我

我有一个用html5样板构建的web应用程序,它有多个可用的皮肤

每个皮肤都包含在一个单独的css文件中,使用哪个皮肤是通过一个配置文件设置的

目前,HTML5样板构建脚本缩小并重命名了第一个皮肤,它位于style.css(默认css文件)中,它还缩小了同一文件夹中的其他两个css文件,但没有重命名它们,这将导致实时服务器上的缓存出现问题-当css文件的过期日期很长时,用户的web浏览器将无法获取对其他皮肤的更新

谁能给我一些关于如何添加额外css文件支持的提示

为了澄清,在运行构建脚本之前,我的css文件夹中有以下文件:
style.css
skin2.css
skin3.css

运行构建脚本后:
e3b847ea91a5666541ef13b4d9e0797342f5fc31.css->good
skin2.css->bad
skin3.css->bad

我已经从构建脚本中提取了我认为相关的代码,并添加了一些注释来解释正在发生的事情:

    <!-- copy source file to intermediate directory -->
    <copy file="${dir.source}/${dir.css}/${file.root.stylesheet}" tofile="${dir.intermediate}/${dir.css}/${file.root.stylesheet}"/>

    <!-- copy skeleton to concat file -->
    <copy file="${dir.intermediate}/${dir.css}/${file.root.stylesheet}"
          tofile="${dir.intermediate}/${dir.css}/style-concat.css" overwrite="true"/>

    <!-- load the file into a property -->
    <loadfile property="imports" srcfile="${dir.intermediate}/${dir.css}/${file.root.stylesheet}"/>

    <var name="concat-files" value="${file.root.stylesheet}"/>


    <!--minify CSS-->
    <apply executable="java" parallel="false">
        <fileset dir="${dir.intermediate}/${dir.css}/" includes="style-concat.css"/>
        <arg line="-jar"/>
        <arg path="${dir.build.tools}/${tool.yuicompressor}"/>
        <srcfile/>
        <arg line="-o"/>
        <mapper type="merge" to="${basedir}/${dir.intermediate}/${dir.css}/style-concat.min.css"/>
        <targetfile/>
    </apply>

<!--calculate checksum of css file (this is used for filename)-->
    <checksum file="${dir.intermediate}/${dir.css}/style-concat.min.css" algorithm="sha" property="css.sha" />
    <if>
        <isset property="gae.css_dir" />
        <then>
            <property name="style.css" value="${gae.css_dir}/${css.sha}.css" />
        </then>
        <else>
            <property name="style.css" value="${dir.css}/${css.sha}.css" />
        </else>
    </if>
    <copy file="${dir.intermediate}/${dir.css}/style-concat.min.css" tofile="${dir.publish}/${dir.css}/${css.sha}.css" />

    <!--minify REMAINING CSS files (my other skins)-->

    <apply executable="java" parallel="false">
        <fileset dir="${dir.source}/${dir.css}/" excludes="${concat-files}" includes="**/*.css"/>
        <arg line="-jar"/>
        <arg path="${dir.build.tools}/${tool.yuicompressor}"/>
        <srcfile/>
        <arg line="-o"/>
        <mapper type="glob" from="*.css" to="${basedir}/${dir.publish}/${dir.css}/*.css"/>
        <targetfile/>
    </apply>
    <foreach list="${file.stylesheets}" param="css_file" target="-css-remove-concatenated-stylesheets" />   


    <!--replace reference to css in source with new filename-->
    <replaceregexp match="&lt;!-- CSS concatenated [\d\w\s\W]*?!-- end CSS--&gt;" replace="&lt;link rel='stylesheet' href='${style.css}'&gt;" flags="m">
        <fileset dir="${dir.intermediate}" includes="${page-files}"/>
    </replaceregexp>


如果我正确理解了您的构建文件,您就不会执行

<checksum>
 ...
<copy file="${dir.intermediate}/${dir.css}/style-concat.min.css" tofile="${dir.publish}/${dir.css}/${css.sha}.css" />

...
skin*.css
文件的一部分。你这样做只是为了钱
style.css

第二次应用后,没有校验和部分。您还需要对每个样式文件重复校验和和复制。

此问题可能有助于完成此任务:

您可以发布构建脚本中的相关代码吗?当然可以-完成。谢谢你的回复。是的,我认为这是现场-谢谢你给了我一个正确的方向轻推。