Я написал сервер css, который выполняет минимизацию и базовую парсинг/замену var. Сервер использует node.js.gzip без поддержки сервера?
Я хочу gzip мой ответ с этого сервера. Как сказано в IRC, node.js в настоящее время не имеет gzip lib, поэтому я пытаюсь сделать это вручную из командной строки (поскольку я только gzipping, когда не в кеше).
Я выталкиваю данные файла из временного файла, а затем используя exec для вызова 'gzip -c -9 -q ' + tempFile
. Я получаю сжатые данные правильно (кажется) и отправляю надлежащий Content-Encoding
заголовок как 'gzip'
, но отчеты Chrome:
Error 330 (net::ERR_CONTENT_DECODING_FAILED): Unknown error
.
Кроме того, некоторые независимые gzip-тестеры также терпят неудачу (а не только Chrome).
Я предполагаю, что это что-то простое, я не знаю о генерации блоков gzip для браузеров, видя, что я никогда не пытался сделать это вручную.
Любая помощь была бы полезной. Сервер быстро растет, но мне нужно gzip контент, чтобы получить максимальную производительность для конечных пользователей.
Спасибо.
UPDATE Я проверил мой Content-Length
является правильным
Содержимое gzipped _before_ отправлено в браузер. Как бы браузер не имел правильную длину? Однако я попробую это. Я в отчаянии.:) – Spot
Его дело в том, что если ваш сервер указал длину предварительного сжатия как заголовок, у вас будет незаконный ответ HTTP. Вы можете легко изучить заголовки с помощью Fiddler или аналогичного. – EricLaw
Хорошо, что это не исправить, к сожалению. – Spot