Gzipped javascript无法正常使用

时间:2011-07-27 20:04:05

标签: javascript gzip

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

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

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

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

另外,我想限制为文件夹/resources/widget/

提供服务的gz

don't want to compress on the fly因为我有1000 requests per second,所以需要几分钟才能取下服务器。每个js文件大约100KB,js.gz大约是16KB,所以如果能帮助我获得当前文件,我将不胜感激。

4 个答案:

答案 0 :(得分:4)

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>

答案 1 :(得分:1)

我遇到一些浏览器(特别是Safari)在文件扩展名为“.gz”时没有正确处理的问题。我们必须通过将文件重命名为“.jgz”

来解决这个问题

答案 2 :(得分:0)

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

答案 3 :(得分:0)

如果您使用的是php:

在你的htaccess文件中:

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

compress-js.php:

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

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

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