【问题标题】:Compressing CSS and JS without mod_gzip and mod_deflate在没有 mod_gzip 和 mod_deflate 的情况下压缩 CSS 和 JS
【发布时间】:2010-12-29 11:55:49
【问题描述】:

我想在我的服务器上压缩 CSS 和 JS 文件以最小化加载时间,问题。

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

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

我们将非常欢迎您的回答。

【问题讨论】:

  • 你支持编程语言吗?
  • 我不确定,我怎么知道?
  • 询问您的虚拟主机?他们可能有 ASP 或 PHP
  • @DanC:询问您的托管服务提供商。
  • 对不起,我认为(出于某种原因)你的意思是别的。服务器确实支持 PHP,网站的主干是 Wordpress 并用 PHP 编写

标签: javascript html css apache compression


【解决方案1】:

您可以通过脚本运行文件,该脚本会为您压缩文件并添加适当的过期标头。 要么设置 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】:

是的,答案是Minification

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

【讨论】:

  • 我已经压缩了所有的 JS 和 CSS,但也想压缩它们,以最大限度地提高加载速度。
  • @Dan:我敢肯定你已经考虑过这一点,但是你为什么不改变你的主机呢?看起来您的需求已经超出了典型的“共享托管”服务。
  • 不幸的是,我在真正了解托管、压缩或其他任何事情之前就注册了一个长期套餐!合同将于明年到期,因此在尽快继续之前探索补充现有托管的想法!
  • @Dan:我理解你的情况。但是,如果压缩对您来说真的很重要,我敢打赌,您将用于解决此问题的时间和精力可能会比您将剩余的托管承诺视为沉没成本(en.wikipedia.org/wiki/Sunk_cost )。有一些非常便宜的优惠可以让您完全控制您的网络服务器,以及许多其他明显的好处。
【解决方案3】:

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

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

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

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

请确保这些文件使用正确的内容类型标头提供。

【讨论】:

  • 虽然现在比较少见,但是当 IE6(它对 gzip 几乎的支持)在 gzip 压缩文件上中断时你会怎么做?
  • @Piskvor:检查浏览器发送的 HTTP 标头。如果Accept-Encoding: gzip, deflate 不存在,请发送文件的非压缩版本。
  • “当 IE6 在 gzip 压缩文件上中断时你会怎么做?”我必须承认,我没有足够的经验来遇到这种情况。
【解决方案4】:

顺便说一句:如果图像已经以压缩格式保存,并且对用户来说仍然看起来不错,那么压缩图像将无济于事。

【讨论】:

  • 可能是一个好点,为指出这一点而欢呼 - 我在这里有点页面速度疯狂!
  • 如果你能一次又一次地重新压缩同一个文件,直到它可以用一个比特传输,那会很好,不是吗? ;-)
  • 那太棒了! yslow 100/100 我们来了!
  • 唯一的问题是,所有网站看起来都非常相似... ;-)
  • 是的!为了弥补类似的内容,我们可以将所有网站类型塞进一个。进入 Amazonoogletubewitterbook.com
【解决方案5】:

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

【讨论】:

    猜你喜欢
    • 2010-09-08
    • 1970-01-01
    • 2012-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多