首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP -发送gzip压缩JS/CSS

问PHP -发送gzip压缩JS/CSS
EN

Stack Overflow用户
提问于 2010-11-16 06:20:40
回答 5查看 8.4K关注 0票数 8

我用下面的代码创建了一个style.css.php文件:

代码语言:javascript
复制
<?php

  $gzip = (ob_get_length() === false && !ini_get("zlib.output_compression") && ini_get("output_handler") != "ob_gzhandler" && extension_loaded("zlib") && substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') && !headers_sent());

  if(!$gzip) header('Location: style.css');

  header('Content-type: text/css');
  header('Cache-Control: no-cache');
  header('Expires: Mon, 1 Jan 1901 04:20:00 GMT');

  ob_start('ob_gzhandler');

  include "style.css";
?>

你认为如何?这是压缩js/css文件的好方法吗?有没有更好的方法来做这件事?我是为一个公共应用程序这么做的。任何人都可以下载。所以在共享主机上会有一些人禁用了gzip

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-11-16 08:53:33

不,不好。这里面有很多地方不对劲。包含,重定向后没有死亡,不考虑deflate方法,...

使用PHP很容易做到这一点,因为zlib输出处理程序会自动检测要发送给客户机的适当压缩(如果有的话);您所要做的就是启用它:

代码语言:javascript
复制
<?php
if (extension_loaded("zlib") && (ini_get("output_handler") != "ob_gzhandler")) {
    ini_set("zlib.output_compression", 1);
}

readfile('style.css');
票数 12
EN

Stack Overflow用户

发布于 2010-11-16 06:35:39

如果您使用Apache为您的站点提供服务,则可以使用mod_gzip或mod_deflate。它们通常在共享主机上可用,并且可以在.htaccess文件中配置。

将以下行添加到.htaccess文件中:

代码语言:javascript
复制
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

(即每个mime类型一个)

票数 3
EN

Stack Overflow用户

发布于 2010-11-16 06:28:42

如果配置正确,服务器应该自动执行此操作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4189429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档