如何在 Rhino 中从使用 gzip 编码的服务器加载 JavaScript 库

How do I load a javascript library in Rhino, from a server that uses gzip encoding?

本文关键字:编码 服务器 加载 JavaScript gzip Rhino      更新时间:2023-09-26

在 rhino 中,我习惯于能够从 URL 加载 JavaScript 库,例如

load('http://latex.mathoverflow.net/mathjax/MathJax.js')

(这实际上不起作用,除非您首先通过 env.js 或类似方式提供类似浏览器的环境。但是 rhino 设法获取了该文件,并开始编译它。

但是,如果服务器提供 javascript 库 gziped,rhino 似乎会立即失败并出现语法错误,例如

load('http://cdn.mathjax.org/mathjax/latest/MathJax.js')

您可以使用 curl 看到差异,例如

curl --head http://latex.mathoverflow.net/mathjax/MathJax.js

HTTP/1.1 200 OK日期:2011 年 5 月 9 日星期一 21:07:53 GMT服务器:阿帕奇最后修订日期: 星期五, 07 一月 2011 05:13:36 GMTETag: "24b8044-9db7-4993aae2a4000"接受范围:字节内容长度:40375变化:接受编码内容类型:应用程序/JavaScript

curl --head http://cdn.mathjax.org/mathjax/latest/MathJax.js

HTTP/1.0 200 OK服务器: nginx日期:2011 年 5 月 8 日星期日 20:06:19 GMT内容类型:应用程序/JavaScript最后修改日期: 周日, 13 三月 2011 17:30:00 GMTETag: "3f59e66-a250-49e608b6bf600"-gzip接受范围:字节内容编码:gzip缓存控制:最大年龄=86400内容长度:12466年龄:3624X-Cache:从云前命中X-amz-cf-id: d0e2d89a0d90c9b7bb49b466e233b005389f96db378543b01de51769589f84dfd9733430f773846f通过: 1.0 fee706bb2dcbccabb9a09a17e9d6037c.cloudfront.net:11180 (CloudFront), 1.0 6d5d46d2c7dcee5d4601d83b29b92a90.cloudfront.net:11180 (CloudFront)连接:关闭

有什么建议吗?有没有技巧可以让犀牛加载压缩脚本?

现在有一个错误报告。