如何从静态CSS文件中删除动态注释?

时间:2010-08-02 14:01:29

标签: java css facelets

我正在使用facelets,我在webapp/styles/blueprint/*.css中有很多CSS文件。它们包含我不希望最终用户看到的评论。如何在飞行中删除它们?

2 个答案:

答案 0 :(得分:1)

使用YUI compressor。它不仅会删除注释,还会缩小CSS(和JS)文件。

Reader reader = null;
Writer writer = null;

try {
    reader = new InputStreamReader(new FileInputStream(cssFile), "UTF-8");
    writer = new OutputStreamWriter(new FileOutputStream(minFile), "UTF-8");
    new CssCompressor(reader).compress(writer, -1); // That's it.
} finally {
    close(writer);
    close(reader);
}

另见

答案 1 :(得分:0)

正如Nick Craver在评论中所说,如果有的话,你应该将这项工作作为构建过程的一部分,因为css是一种静态资源。无需运行时修改。

现在,根据您的构建过程,您可以编写一个简单删除任何注释的小脚本,我的第一种方法是正则表达式:

cssFileContents = cssFileContents.replaceAll("/\*.*?\*/", ""); //with lazy quantifier on the "."!

在这种情况下,您需要确保正则表达式“。” - 元字符包含换行符。

由于css只允许阻止注释(/ * ... * /)而没有行注释(// ... \ n),因此这是你唯一需要替换的东西。