现在我没有使用任何压缩方法,只需将以下内容放在 body 标签之间:
<link rel="stylesheet" type="text/css" href="Client/Css/all.css" />
是否可以在 PHP 中使用 ob_start("ob_gzhandler") 来压缩这个 css 文件?
如何?
是的,您可以(当通过执行压缩的 php 脚本传输文件时)。但它不仅仅是简单地压缩输出。您应该只向支持它的客户端发送压缩输出,您应该确保正确处理缓存信息/请求。等等。
在相当多的情况下,您的网络服务器支持为您完成所有这些工作,而无需 PHP 脚本。如果是 Apache,请查看 mod_deflate 和 mod_mime(指令 AddEncoding)。
如果您使用的是较新版本的 apache Web 服务器,请将以下内容添加到您的 .htaccess 文件中:
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
有几种方法。
您可以告诉网络服务器将该文件视为 PHP(重命名为具有 .php 扩展名是最简单的),然后添加:
<?php
header("Content-type: text/css; charset=utf-8");
ob_start("ob_gzhandler")
?>
到顶部。
您可以编写一个 PHP 脚本来做同样的事情,但读取 CSS 文件而不是内联。
这两个选项都会导致缓存问题 - 如果您想对此保持清醒,您还必须注意缓存控制 HTTP 标头。
最好的选择是忘记 PHP,只配置你的网络服务器来压缩这些文件(使用 mod_deflate、mod_gzip 或类似的)
你想达到什么目的?如果您尝试缩小组件以发送到客户端浏览器以便更快地下载它们,您应该使用 mod_defalte。如果这不是一个选项,您可以在此处找到更多信息:谷歌搜索“gzip php css”的第一个结果
编辑:我只想指出,除非您使用的是旧版本的 Apache,否则您应该使用mod_deflate 而不是mod_gzip。