【问题标题】:Gzipped javascript not being served properly未正确提供 Gzipped javascript
【发布时间】:2011-07-27 20:04:05
【问题描述】:

我有这个 js 文件的js file and a gzipped version

我面临的问题是尝试将此 js 文件的 gzip 压缩版本提供给支持它的浏览器。

我不知道该怎么做。如果我将 js.gz 添加到当前脚本元素,则它不会被加载并给出错误。

如何自动将此js的gzip压缩版本提供给支持的浏览器。

另外我想限制为文件夹/resources/widget/提供服务的gz

don't want to compress on the fly1000 requests per second 一样,需要几分钟才能关闭服务器。每个 js 文件大约 100KB,js.gz 大约 16KB,所以如果我能帮助我处理当前文件,我将不胜感激。

【问题讨论】:

    标签: javascript gzip


    【解决方案1】:
    RewriteEngine on
    RewriteCond %{HTTP_USER_AGENT} “.*Safari.*” [OR]
    RewriteCond %{HTTP:Accept-Encoding} !gzip
    RewriteRule (.*)\.jgz$ $1\.js [L]
    
    AddType “text/javascript;charset=UTF-8″ .jgz
    AddEncoding gzip .jgz
    

    将文件从 .gz 重命名为 .jgz

    或使用

    <FilesMatch "\\.js.gz$">
      ForceType text/javascript
      Header set Content-Encoding: gzip
    </FilesMatch>
    <FilesMatch "\\.js$">
      RewriteEngine On
      RewriteCond %{HTTP_USER_AGENT} !".*Safari.*"
      RewriteCond %{HTTP:Accept-Encoding} gzip
      RewriteCond %{REQUEST_FILENAME}.gz -f
      RewriteRule (.*)\.js$ $1\.js.gz [L]
      ForceType text/javascript
    </FilesMatch>
    

    【讨论】:

      【解决方案2】:

      当文件扩展名为“.gz”时,我遇到了一些浏览器(尤其是 Safari)无法正确处理的问题。我们不得不通过将文件重命名为“.jgz”来解决这个问题

      【讨论】:

      • 那只是门票!某些代理在看到 .gz 时正在添加 gzip 内容类型标头。谢谢!
      【解决方案3】:

      您可以使用 httacces 为您 gzip 到支持它的浏览器:
      见:
      http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/

      【讨论】:

      • 我不想即时压缩,因为我每秒有大约 1000 个请求,并且需要几分钟才能关闭服务器。每个 js 文件大约 100KB,js.gz 大约 16KB,所以如果我能帮助我处理当前文件,我将不胜感激。
      【解决方案4】:

      如果您使用的是 php:

      在您的 htaccess 文件中:

      RewriteEngine On
      RewriteRule (.*)\.js compress-js.php?file=$1.js [L]
      

      压缩-js.php:

      ob_start("ob_gzhandler");
      header("Content-type: text/javascript; charset: ISO-8859-1");
      echo (file_get_contents ($file));  
      

      这就是您所需要的,您的文件将以压缩格式提供。

      只需将这两个文件 .htaccesscompress-js.php 添加到您的 js 文件夹或存储它们的任何位置。

      【讨论】:

      • 我不想即时压缩,因为我每秒有大约 1000 个请求,并且需要几分钟才能关闭服务器。每个 js 文件大约 100KB,js.gz 大约 16KB,所以如果我能帮助我处理当前文件,我将不胜感激。
      猜你喜欢
      • 2021-04-20
      • 1970-01-01
      • 1970-01-01
      • 2011-02-06
      • 1970-01-01
      • 2010-12-24
      • 2021-01-31
      • 2018-09-19
      • 2021-12-18
      相关资源
      最近更新 更多