Re: минимизация .js и .css

soviet nginx-forum на nginx.us
Чт Мар 3 12:14:12 MSK 2011


Под минимизацией google подразумевает
удаление лишних пробелов (так же \t \n ι \r)
которые собственно нужны для удобного
чтения человеку (разработчика), а не
браузеру для их компиляции.
Есть некоторое количество программ
которые делают это автоматически
(придерживаясь неких правил, например
не убирают пробелы в кавычках), я лично
использую jsmin и csstidy для javascript и stylesheet
аналогично. 
Согласен что делать это вручную не
очень удобно. Так же при каждом запросе
пропускать через jsmin и csstidy тоже не
очень мудро, пустая трата ресурсов. 
Я решил аналогичную проблему с помощью
такой логики: запрос всегда делается на
минимизированную версию архива, в
случае если это архив отсутствует,
запрос передаётся php скрипту, которые
выполняет системные команды  jsmin или
csstidy, сохраняет минимизированную
версию архива и отдаёт её серверу.
Таким образом при следующем запросе
будет читаться минимизированная
(кешированная) версия архива. Так что
при изменение исходника достаточно
просто удалить кешированный архив.

Примерно так выглядит для javasrcipt 
  location ~* ^/(js/([^\-/]*\.js))$ {
    try_files $uri /build.php?fullname=$1&filename=$2;
  }

исходные архивы находятся в корневой
папке, а минимизированные с тем же
именем но в подпапке js/ 
директива  try_files проверяет на наличие
минимизированного архива в случае его
отсутствия передаёт запрос build.php с
именем минимизированного архива (куда
надо будет сохранить) -fullname и именем
исходного архива -filename

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,179872,179892#msg-179892




Подробная информация о списке рассылки nginx-ru