Назад | Перейти на главную страницу

Как предварительно сжать статический JS

мой сайт работает под управлением IPB 3.1.4, и я хочу предварительно сжать свои файлы .js. У меня есть root-доступ по ssh, и мне нужна команда для сжатия каталога js и кода для htaccess.

Мой htaccess:

Options -Indexes

<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

<FilesMatch "\.(ico|flv|jpe?g|png|gif|js|css|swf)$">
ExpiresActive On
ExpiresDefault "access plus 1 month"
</FilesMatch>

FileETag none

Если у вас есть собственный VPS или выделенный сервер, тогда mod_deflate для Apache может помочь вам решить эту проблему.

У меня нет htaccess, но, поскольку я сделал это на Nginx некоторое время назад, я могу хотя бы дать вам сценарий bash. Я просматриваю каталог (и его подкаталоги) и архивирую перечисленные типы файлов. Он также восстанавливает gzip, когда исходный код более свежий.

#! /bin/bash
# jve - 2011
# this script checks a list of directories for a list of extensions and
# generated gzipped versions of the files that are found
# if the modification date of a file is newer than its gzipped version
# then the gzip file is regenerated

#     specify a filetype like *.css or a filename like index.html
# leave one space between each entry
FILETYPES="*.css *.jpg *.jpeg *.gif *.png *.js *.html"

# specify a list of directories to check recursively
DIRECTORIES="/var/www/nginx_default/*"

for currentdir in $DIRECTORIES
do
   for extension in $FILETYPES
   do
      find $currentdir -iname $extension -exec bash -c 'PLAINFILE={};GZIPPEDFILE={}.gz; \
         if [ -e $GZIPPEDFILE ]; \
         then   if [ `stat --printf=%Y $PLAINFILE` -gt `stat --printf=%Y $GZIPPEDFILE` ]; \
                then    echo "$GZIPPEDFILE outdated, regenerating"; \
                        gzip -9 -f -c $PLAINFILE > $GZIPPEDFILE; \
                 fi; \
         else echo "$GZIPPEDFILE is missing, creating it"; \
              gzip -9 -c $PLAINFILE > $GZIPPEDFILE; \
         fi' \;
   done
done

ссылка на оригинальную статью здесь: http://wiki.linuxwall.info/doku.php/en:ressources:dossiers:nginx:nginx_performance_tuning

Может ли сценарий bash в ответ на этот вопрос Помогите?