2009-12-23 74 views
4

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

我的托管与Streamline.net(大错误,永远不会去那里)由于安全问题谁不会激活mod_gzip和mod_deflate。

有没有人有另一种方式来压缩这些类型的文件(和图像文件太pos),而不去mod_gzip和mod_deflate的方式。

答案将非常受欢迎。

+0

您是否支持编程语言? – Gumbo 2009-12-23 13:31:39

+0

我不确定,我怎么知道? – DanC 2009-12-23 13:45:37

+0

问问你的虚拟主机?他们可能有ASP或PHP – 2009-12-23 13:53:32

回答

2

您可以通过脚本运行您的文件,该脚本会为您加密并添加适当的过期标题。 要么建立一个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和/或即时缩小,进一步加快了访问者的浏览速度。

+0

这听起来很有趣,我会试试看,如果我的编码完全失败了,我会回报 - 欢呼! – DanC 2009-12-23 13:55:08

4

是的,答案是Minification

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

+0

+1撰写。独立于支持编程语言。 – Gumbo 2009-12-23 13:32:30

+0

我缩小了所有的JS和CSS,但也想压缩它们,只是为了最大化加载速度。 – DanC 2009-12-23 13:44:37

+2

@丹:我相信你已经考虑过这个,但你为什么不改变你的主人?它看起来生活您的要求超出了典型的“共享托管”提供。 – 2009-12-23 14:01:11

0

大多数编程语言都支持一些数据或文件压缩格式,如ZLIB或GZIP。因此,您可以使用编程语言以这些格式之一压缩文件。

1

就像一个旁注:如果压缩图像已经以压缩格式保存,并且对用户来说仍然看起来不错,那么压缩图像将不会有好处。

+0

可能是一个好点,欢呼指出 - 我在这里疯狂了一下页面速度! – DanC 2009-12-23 13:48:39

+0

这将是很好,如果你可以再次重新压缩相同的文件,直到它可以用一个单一的位传输,不是吗? ;-) – 2009-12-23 13:52:33

+0

它会非常棒! yslow 100/100在这里我们来了! – DanC 2009-12-23 13:55:41

2

而不是让mod_gzip动态地gzip你的CSS和JavaScript文件,你可以自己gzip,然后上传它们。

这会在您上传CSS和JavaScript之前引入另一个步骤,但它可以工作,甚至可以为每个请求节省一点服务器处理时间,而不是mod_gzip。

在Mac OS X,使用gzip压缩在命令行上的文件是,例如:

gzip -c styles.css > styles-gzip.css 

确保这些文件会用正确的内容类型标题担任,虽然一样简单。

+0

虽然今天比较少见,但当IE6(其支持gzip *几乎可用*)在gzip文件中断时,您会做什么? – Piskvor 2009-12-26 19:23:34

+0

@Piskvor:检查浏览器发送的HTTP头。如果'Accept-Encoding:gzip,deflate'不存在,则发送一个非gzip版本的文件。 – Geert 2009-12-26 19:29:25

+0

“当IE6在gzip文件中断时,你会怎么做?”我必须承认,我没有足够的经验来遇到这种情况。 – 2009-12-27 13:25:45