Как я могу удалить комментарии на лету из моих статических файлов CSS? - PullRequest
0 голосов
/ 02 августа 2010

Я использую Facelets, и у меня есть несколько файлов CSS в webapp/styles/blueprint/*.css.Они содержат комментарии, которые я не хочу показывать конечным пользователям.Как я могу удалить их на лету?

Ответы [ 2 ]

1 голос
/ 05 августа 2010

Использовать YUI компрессор .Он не только удаляет комментарии, но и минимизирует файлы 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);
}

См. Также

0 голосов
/ 02 августа 2010

Как сказал Ник Крэйвер в комментариях, вам следует, если это вообще необходимо, выполнять эту работу как часть процесса сборки, поскольку css является статическим ресурсом.Никаких изменений во время выполнения не требуется.

Теперь, в зависимости от вашего процесса сборки, вы можете написать небольшой скрипт, который просто удаляет любые комментарии, мой первый подход - регулярные выражения:

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

В этомВ этом случае вам необходимо убедиться, что регулярное выражение "." - метасимвол включает в себя разрывы строк.

Поскольку css допускает только комментарии к блоку (/ * ... * /) и комментарии к строке (// ... \ n)), это единственное, что вам нужно заменить.

...