Из-за некоторых ограничений, не связанных с программированием, я временно не могу использовать самые обновленные node.js Express и Connect. Я должен придерживаться 2 подрывной деятельности позади.
Итак, теперь я должен сделать мой единственный gzip javascript (потому что более старая версия не заботится о ETag и т. Д.).
Вот что я делаю: (У меня был рабочий файл gzipped)
fs.readFile('my.js.gz', function(err, data) {
if (!err) {
gzipJsFile = data;
}
}
app.get('my.js', function(req, res) {
// assume req.headers.accept-encoding contains gzip
res.header('Content-Type', 'text/javascript');
res.header('Content-Encoding', 'gzip');
res.header('Accept-Ranges', 'bytes');
res.header('Transfer-Encoding', 'chunked');
res.header('Vary', 'Accept-Encoding');
res.send(gzipJsFile);
});
И браузер не может разархивировать его.
Я использую Friddler. он жалуется на несоответствие длины содержимого. И также жалуется, что магическое число в заголовке Gzip неверно.
Мне интересно, правильно ли я читаю файл gzip и отправляю его в ответ HTTP?