我正在使用facelets,我在webapp/styles/blueprint/*.css
中有很多CSS文件。它们包含我不希望最终用户看到的评论。如何在飞行中删除它们?
答案 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),因此这是你唯一需要替换的东西。