我在MacBook上使用内置服务器。
说我的脚本是foo.js.这适用于我的测试浏览器(Firefox 10,Chrome 17):
<script type="text/javascript" src="foo.js"></script>
但是,如果我gzip该文件,在将上面的行改为此后,两个浏览器都会给我一个非法的令牌/字符错误:
<script type="text/javascript" src="foo.js.gz"></script>
是什么给出的?类型是否需要更改或者其他什么?这种做法记录在哪里?每当我在网上看到它提到“压缩你的脚本!”时,没有人会提到你需要对链接做任何特别的事情。
答案 0 :(得分:9)
网络服务器需要告诉浏览器内容是否已被gzip压缩。这是使用content-encoding标头完成的。也许你可以配置你的web服务器来为这个头提供以.gz结尾的文件。
网络服务器通常具有动态压缩文档的功能,而不是静态压缩文件。这意味着您将普通的foo.js文件放在文档根目录中,并将Web服务器配置为在将其发送到客户端时对其进行压缩。
答案 1 :(得分:4)
我有类似的错误。检查与您的foo.js对应的网络选项卡。在响应标头中,请求的标头应包含 Content-Encoding:gzip 和 Content-Type:application / javascript 。否则,浏览器不会解压缩您的文件。浏览器应该知道对文件进行了哪种内容编码。
答案 2 :(得分:2)
如果您的gzip设置太高,也会发生此错误。我已尝试gzip -9
,即使发送正确的内容编码,我也收到此错误。当我刚刚通过gzip file.js
运行常规gzip时,它可以正常工作。