我可以使用两种不同的方法:
>使用mod_deflate通过htaccess使Apache压缩给定目录中的JS / CSS文件
>使用ob_start(‘gzhandler’)压缩文件并使用正确的标头将其返回给浏览器.
方法1的问题在于并非所有浏览器都支持mod_deflate,而且我也不知道如何编写.htaccess文件以使其足够智能以进行调整.
方法2的问题在于没有关于如何判断浏览器是否支持gzip压缩脚本或样式表的确定答案,并且如果它确实必须将mime-type作为标题中的内容类型给出.
我需要一些建议.首先,浏览器更普遍接受哪种方法?其次,如何使用任一方法衰减来提供未压缩的备份脚本?第三,将< script src =“js / lib.js.gz”type =“text / javascript”>< / script>独自工作? (显然不会腐烂.)
为了记录,我使用PHP5与mod_deflate和完整的gzip创建功能,我的doctype是xhtml strict.此外,javascript本身是用YUI压缩的.编辑:我回去看了看,但我只有Apache 1.3;我以为我有2,所以很抱歉在我可能没有它时提及mod_deflate.
为了回应您的第一个问题,您可以设置模块特定的.htaccess信息,如下所示:
<IfModule mod_deflate.c> # stuff </IfModule>
if (strstr($_SERVER['HTTP_ACCEPT_ENCODING'],'gzip') ) { ob_start('ob_gzhandler'); header("content-encoding: gzip"); // etc... }
这里有一些未经测试的.htaccess应该能够处理压缩与未压缩.js文件的协商:(source)
<FilesMatch "\\.js.gz$"> ForceType text/javascript Header set content-encoding: gzip </FilesMatch> <FilesMatch "\\.js$"> RewriteEngine On RewriteCond %{HTTP_USER_AGENT} !".*Safari.*" RewriteCond %{HTTP:Accept-Encoding} gzip RewriteCond %{REQUEST_FILENAME}.gz -f RewriteRule (.*)\.js$$1\.js.gz [L] ForceType text/javascript </FilesMatch>
原文地址:https://www.jb51.cc/php/133252.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。