2016-01-06 2 views
4

У меня есть файл JSON на страницах GitHub, это около 2 МБ несжатого. Я обращаюсь к этому файлу с помощью метода jQuery $.get(). Я хотел бы GZIP файл, который сжимает его до примерно 500 КБ, но когда я ставлю сжатый файл на страницах GitHub, $.get() не работает с ошибкой: Uncaught SyntaxError: Unexpected tokenМогу ли я служить gzipped JSON с GitHub Pages?

Я думаю, что проблема заключается в том GitHub страница не устанавливает заголовок Content-Encoding: gzip в файле JSON, и запрос GET считает, что он имеет дело с простым файлом JSON. Есть ли способ либо:

  1. Force GitHub страницы, чтобы добавить заголовок Content-Encoding: gzip к .json файла, ИЛИ
  2. Настройка запроса AJAX, так что он знает, что он имеет дело с сжатыми файлами JSON, даже если сервер не сказал, что контент застрял
+0

Вы сделали ужасно большой прыжок, чтобы предположить, что синтаксическая ошибка имеет какое-либо отношение к gzip. Вы подтвердили свой JSON? Какова остальная часть вашего кода - в какой строке вы получаете Uncaught SyntaxError? – Adam

+0

Когда я поставил 2 версии одного и того же файла на страницах GitHub, один gzipped, а другой нет, распакованная версия работала нормально. В любом случае, см. Ответ ниже, оказывается, что моя (глупая) проблема заключалась в том, что файл не заканчивался расширением '.json', как только у меня есть это право расширение, GitHub страницы автоматически gzips его – tws

ответ

5

Страницы Github уже gziping html, css, js, json, ... Бесполезно пытаться сделать лучше с помощью gziping json самостоятельно.

1.3M json отправляется как 357KB по страницам github. See here и нажмите ссылку "загрузить json".

+0

Спасибо, вы верный. Я не получал gzip-файл, но моя проблема заключалась в том, что в моем файле JSON не было расширения .json, которое, как я полагаю, сделало его так, что страницы GitHub не использовали auto gzip. Как только я изменил расширение, он теперь автоматически отключается – tws

Смежные вопросы