![如何预先 gzip 静态 JS](https://linux22.com/image/540654/%E5%A6%82%E4%BD%95%E9%A2%84%E5%85%88%20gzip%20%E9%9D%99%E6%80%81%20JS.png)
我的网站运行的是 IPB 3.1.4,我想预压缩我的 .js 文件。我有 ssh root 访问权限,需要命令来 gzip 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
答案1
如果你正在运行自己的 VPS 或专用服务器,那么mod_deflateApache 可以帮助您解决这个问题。
答案2
可以使用 bash 脚本来回答这个问题帮助?
答案3
我没有 htaccess,但由于我前段时间在 Nginx 上做过,所以我至少可以给你一个 bash 脚本。我扫描一个目录(及其子目录)并 gzip 列出的文件类型。当源较新时,它还会重新生成 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