引用的GZipped JavaScript文件不起作用

时间:2010-11-25 16:45:55

标签: javascript gzip

我正在使用的这个平台使用一些机制来确定它是否应该对直接<script>文件或.js文件执行.js.gz链接,具体取决于浏览器类型和版本

在当前服务器上,一切正常,jsjs.gz文件都有效,javascript在浏览器中执行。但是,将其全部转移到新服务器上,然后Firefox突然停止使用gz文件。它将下载它们(可以使用Firebug看到)但它没有执行它们。

关于为什么gzip压缩文件没有正确使用的任何想法?

旧版的响应标题

Date              Thu, 25 Nov 2010 17:06:32 GMT
Server            Apache
Last-Modified     Mon, 22 Nov 2010 21:31:00 GMT
Etag              "55808a3-3f1e-4ceae114"
Accept-Ranges     bytes
Content-Length    16158
Keep-Alive        timeout=15, max=100
Connection        Keep-Alive
Content-Type      application/javascript
Content-Encoding  gzip

来自新

的回复标题
Date               Thu, 25 Nov 2010 17:00:11 GMT
Server             Apache/2.2.17 (CentOS)
Last-Modified      Thu, 25 Nov 2010 16:11:00 GMT
Etag               "693c304-4178-495e2da08cd00"
Accept-Ranges      bytes
Content-Length     16760
Connection         close
Content-Type       application/x-gzip

我将假设它来自Content-Encoding和Type,但我不知道如何更改它。

FIX 考虑到答案和评论后,我将以下内容更改为/etc/httpd/conf/httpd.conf,其中注释(#)行是什么,取消注释是我的替代:

# Technically just uncommented this line
AddEncoding x-gzip .gz .tgz

#AddType application/x-gzip .gz .tgz
AddType application/x-gzip .tgz
AddType application/javascript .gz

2 个答案:

答案 0 :(得分:0)

这将是服务器端设置/模块 - 客户端不知道如何处理gziped 文件但是他们通常知道如何处理在传输中压缩的文件,只要你告诉他们你是怎么做的使用Content-Encoding标题压缩它们。

基本上我认为你会发现服务器没有在新服务器上发送Content-Encoding: gzip标题,但它是旧的。

答案 1 :(得分:0)

如果您碰巧使用Apache,您的旧网络服务器可能已启用MultiViews,但您当前的网络服务器却没有。尝试在当前服务器中启用它(至少对于该目录):

Options +MultiViews