我使用 google.codes minify 即时缩小我的 css 和 js 文件。我还设置了我的 .htaccess 以在我的所有 css 和 js 文件上使用 deflate - 一些 js 文件(如 shadowbox 和 tinymce)引用代码中其他 js 文件的原因。所以我正在使用 apache deflate 进行压缩,并且 minify 使用 gzip 压缩了一些 js 和 css 文件 - 我这样做是否会产生开销 - 首先 gzipping (minify) 然后 zlib (deflate) 将再次运行。或者 apache deflate 会忽略在标题中具有由 minify 设置的属性的已压缩文件。有人有这方面的经验吗?
问问题
1740 次
3 回答
5
缩小+放气/gzipping可以很好地协同工作。
我使用 mod rewrite 来实现这个目的,我已将所有 css/js 文件预构建为 2 个版本,即原始版本和 .css.gz/.js.gz 版本。
浏览器只发送 .js/.css 请求,服务器检查 .js.gz/.css.gz 的存在,如果满足某些条件则返回压缩后的内容。
因此,从 js 动态加载 js/css 文件并不重要(例如您的 shadowbox 或 tinymce)
基本上像这样
RewriteEngine On
RewriteBase /
#Check for browser's Accept-Encoding,
RewriteCond "%{HTTP:Accept-Encoding}" "gzip.*deflate|deflate.*gzip"
#check file name is endswith css or js
RewriteCond %{REQUEST_FILENAME} "\.(css|js)$"
#check existance of .gz file name
RewriteCond %{REQUEST_FILENAME}.gz -s
#rewrite it to .js.gz or .css.gz
RewriteRule ^.*$ %{REQUEST_URI}.gz [L]
#update some response header
<FilesMatch "\.js\.gz$">
AddEncoding gzip .gz
ForceType "text/javascript"
</FilesMatch>
<FilesMatch "\.css\.gz$">
AddEncoding gzip .gz
ForceType "text/css"
</FilesMatch>
于 2010-01-08T02:00:02.077 回答
1
gzip 使用 zlib 压缩算法,大多数字节序列在第二次压缩时不会很好地压缩。
于 2010-01-08T20:09:40.717 回答
1
Minify不通过 Apache 提供文件,因此没有双重编码。
使用 DEFLATE 过滤器,Apache 每次都会即时压缩请求的文件。Minify 在第一次请求时压缩文件,然后为以后的请求发送预压缩的缓存版本。
基于 PHP 的它以性能换取灵活性和易于维护,但如果你在它前面放置一个代理缓存,它的性能将与 S.Mark 的配置一样好。
于 2010-06-03T18:21:19.810 回答