在没有mod_gzip和mod_deflate的情况下压缩CSS和JS

时间:2009-12-23 13:27:30

标签: javascript html css apache compression

我想压缩服务器上的CSS和JS文件,以最大限度地减少加载时间,问题。

我的主机是Streamline.net(大错误,永远不会去那里),由于安全问题,他们不会激活mod_gzip和mod_deflate。

有没有人有另一种方法可以压缩这些类型的文件(如果可能的话也可以压缩图像文件)而不需要mod_gzip和mod_deflate。

非常欢迎答案。

5 个答案:

答案 0 :(得分:4)

是的,答案是Minification

显然,它不会压缩gzipdeflate。但它有所帮助,使用正确的工具很容易。

答案 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。因此,您可以使用编程语言使用这些格式之一压缩文件。