Как мне загрузить библиотеку javascript в Rhino с сервера, который использует кодировку gzip?

#javascript #gzip #rhino #content-encoding

#javascript #gzip #rhino #content-encoding

Вопрос:

В rhino я привык загружать библиотеки javascript с URL, например

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

(На самом деле это не работает, если вы сначала не создадите среду, подобную браузеру, через env.js или аналогичный. Но rhino удается получить файл и начать его компиляцию.)

Однако, если сервер предоставляет библиотеку javascript в сжатом виде, 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
Дата: Пн, 09 мая 2011 21:07:53 GMT
Сервер: Apache
Последнее изменение: Пт, 07 Янв 2011 05:13:36 GMT
ETag: "24b8044-9db7-4993aae2a4000"
Принять-диапазоны: байты
Длина содержимого: 40375
Изменить: Принять-Encoding
Тип содержимого: приложение /javascript

в то время как

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

выдает

HTTP/1.0 200 OK
Сервер: nginx
Дата: Вс, 08 мая 2011 20:06:19 GMT
Тип содержимого: приложение /javascript
Последнее изменение: Вс, 13 марта 2011 17:30:00 GMT
ETag: "3f59e66-a250-49e608b6bf600"-gzip
Принять-диапазоны: байты
Content-Encoding: gzip
Управление кэшем: максимальный возраст = 86400
Длина содержимого: 12466
Возраст: 3624
X-Cache: попадание из cloudfront
X-Amz-Cf-Id: d0e2d89a0d90c9b7bb49b466e233b005389f96db378543b01de51769589f84dfd9733430f773846f
Через: 1.0 fee706bb2dcbccabb9a09a17e9d6037c.cloudfront.net:11180 (CloudFront), 1.0 6d5d46d2c7dcee5d4601d83b29b92a90.cloudfront.net:11180 (CloudFront)
Соединение: закрыть

Есть предложения? Есть ли какой-нибудь трюк, позволяющий rhino загружать архивированные скрипты?

Комментарии:

1. Заметка из будущего: cdn.mathjax.org срок службы подходит к концу, проверьте mathjax.org/cdn-shutting-down советы по миграции (и, возможно, обновите свой пост для будущих читателей).

Ответ №1:

Теперь для этого есть отчет об ошибке.