加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何链接到HTML文档中的gzip压缩包?

发布时间:2020-12-13 22:40:23 所属栏目:PHP教程 来源:网络整理
导读:我已经看过一些关于gzipping javascript以节省下载时间的参考资料.但我也看到一些警告,某些浏览器不支持这一点. 我可以使用两种不同的方法: 使用mod_deflate通过htaccess使Apache压缩给定目录中的JS / CSS文件 使用ob_start(‘gzhandler’)压缩文件并使用正
我已经看过一些关于gzipping javascript以节省下载时间的参考资料.但我也看到一些警告,某些浏览器不支持这一点.

我可以使用两种不同的方法:

>使用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.

mod_deflate和php的gzhandler都基于zlib,所以从这个意义上说,浏览器如何压缩内容几乎没有什么区别.

为了回应您的第一个问题,您可以设置模块特定的.htaccess信息,如下所示:

<IfModule mod_deflate.c>
  # stuff
</IfModule>

为了回应您的第二个问题,您可以检测PHP中的浏览器支持:

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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读