Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在没有mod_gzip和mod_deflate的情况下压缩CSS和JS_Javascript_Html_Css_Apache_Compression - Fatal编程技术网

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

Javascript 在没有mod_gzip和mod_deflate的情况下压缩CSS和JS,javascript,html,css,apache,compression,Javascript,Html,Css,Apache,Compression,我想压缩我的服务器上的CSS和JS文件,以尽量减少加载时间 我的主机是Streamline.net(大错误,永远不会去那里),由于安全问题,它不会激活mod_gzip和mod_deflate 有没有人有其他方法来压缩这些类型的文件(如果有,还有图像文件),而不必像mod_gzip和mod_deflate那样 答案将是非常受欢迎的。是的,答案是 显然,它不会像或那样压缩。但是它很有帮助,而且使用正确的工具很容易做到。大多数编程语言支持某些数据或文件压缩格式,如ZLIB或GZIP。因此,您可以使用编

我想压缩我的服务器上的CSS和JS文件,以尽量减少加载时间

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

有没有人有其他方法来压缩这些类型的文件(如果有,还有图像文件),而不必像mod_gzip和mod_deflate那样

答案将是非常受欢迎的。

是的,答案是


显然,它不会像或那样压缩。但是它很有帮助,而且使用正确的工具很容易做到。

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

您可以通过脚本运行文件,该脚本将为您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');
}

仅作为旁注:如果图像已以压缩格式保存,且最大压缩程度仍对用户有利,则压缩图像将毫无益处

您可以自己对CSS和JavaScript文件进行gzip,然后上传,而不是将mod_gzip动态地gzip到gzip

在上传CSS和JavaScript之前,这确实引入了另一个步骤,但它是有效的,与mod_gzip相比,它甚至可以为每个请求节省一点点服务器处理时间

在Mac OS X上,在命令行上压缩文件非常简单,例如:

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


但是,请确保这些文件的内容类型标题正确。

您是否支持编程语言?我不确定,如何找到答案?询问您的网络主机?他们可能有ASP或ASPPHP@DanC:询问您的主机提供商。对不起,我以为(出于某种原因)您是指其他内容。服务器确实支持PHP,该站点的主干是Wordpress,用PHPI编写。我们缩小了所有的JS和CSS,但也希望压缩它们,以最大限度地提高加载速度。@Dan:我相信你已经考虑过这一点,但为什么不改换主机呢?看起来你的需求已经超过了典型的“共享托管”服务。不幸的是,我在真正了解托管、压缩或其他任何东西之前就已经注册了一个长期服务包!合同将于明年到期,因此,在尽快继续之前,应探索补充现有主机的想法@丹:我理解你的处境。但是,如果压缩对你来说真的很重要,我敢打赌,你在这个问题上所用的时间和精神能量,可能会比你把剩余的托管承诺视为沉没成本更昂贵。这里有一些非常便宜的服务,可以让你完全控制你的web服务器,还有许多其他明显的好处。也许这是一个很好的观点,为指出这一点干杯-我在这里有点疯狂的页面速度!如果你能一次又一次地重新压缩同一个文件,直到它可以用一个比特传输,那就太好了,不是吗?;-)那太棒了!100/100在yslow上我们来了!唯一的问题是,所有的网站看起来都很相似…;-)对为了弥补类似的内容,我们可以将所有网站类型塞进一个网站中。输入amazonologletubewitterbook.com这听起来很有趣,如果我的编码完全失败,我会尝试一下并报告回来-干杯!尽管现在这种情况比较少见,但当IE6(其对gzip的支持几乎可以正常工作)在gzip文件上中断时,您会怎么做?@Piskvor:检查浏览器发送的HTTP头。如果
Accept Encoding:gzip,deflate
不存在,发送一个非gzip版本的文件。“当IE6在gzip文件上中断时,你会怎么做?”我必须承认,我没有足够的经验遇到这个问题。