我想压缩服务器上的CSS和JS文件,以最大限度地减少加载时间,问题。
我的主机是Streamline.net(大错误,永远不会去那里),由于安全问题,他们不会激活mod_gzip和mod_deflate。
有没有人有另一种方法可以压缩这些类型的文件(如果可能的话也可以压缩图像文件)而不需要mod_gzip和mod_deflate。
非常欢迎答案。
答案 0 :(得分:4)
是的,答案是Minification。
答案 1 :(得分:2)
您可以通过脚本运行文件,该脚本会为您进行gzip,并添加适当的过期标头。 设置URL重写,或手动重写URL:
<script src="js/somescript.js"></script>
变为
<script src="compress.php?somescript.js"></script>
在compress.php中,您可以执行类似
的操作<?php
$file = 'js/' . basename($_SERVER['QUERY_STRING']);
if (file_exists($file)) {
header ('Last-Modified: ' . date('r',filemtime($file));
header ('Content-Type: text/javascript'); // otherwise PHP sends text/html, which could confuse browsers
ob_start('ob_gzhandler');
readfile($file);
} else {
header('HTTP/1.1 404 Not Found');
}
显然,这可以扩展到provide HTTP caching和/或动态缩小,进一步加快访问者的浏览速度。
答案 2 :(得分:2)
不要让mod_gzip动态地gzip你的CSS和JavaScript文件,你可以自己进行gzip,然后上传它们。
这会在您上传CSS和JavaScript之前引入另一个步骤,但它可以工作,甚至可以为每个请求节省一点服务器处理时间,与mod_gzip相比。
在Mac OS X上,在命令行上压缩文件非常简单,例如:
gzip -c styles.css > styles-gzip.css
确保使用正确的内容类型标题提供这些文件。
答案 3 :(得分:1)
正如旁注:压缩图像如果已经以压缩格式保存,并且最大压缩对用户来说仍然很好,那么压缩图像将不会有益。
答案 4 :(得分:0)
大多数编程语言都支持某些数据或文件压缩格式,如ZLIB或GZIP。因此,您可以使用编程语言使用这些格式之一压缩文件。