2017-02-05 8 views
0

У меня есть приложение с угловым 2, которое я построил с помощью cli и gzipped. Я могу обслуживать приложение из папки dist, но я хотел бы использовать версию js-файлов .gz для дальнейшего повышения производительности.Перехват запросов .js и добавление .gz с узлом и выражением

Экспресс попытки файловых серверов:

app.get('*.js', function (req, res, next) { 
    req.url = req.url + '.gz'; 
    res.set('Content-Encoding', 'gzip'); 
    console.log(req,res); 
    next(); 
}); 

также попытался:

app.use(function(req,res,next){ 
    console.log(req,res); 
    var hello = req.url.split('.'); 
    if(hello[hello.length-1]=='js'){ 
     console.log(req,res); 
     req.url += '.gz'; 
     res.set('Content-Encoding', 'gzip'); 
    } 

    next(); 
}); 
+0

Я смог использовать промежуточное программное обеспечение для экспресс-сжатия, все еще задаваясь вопросом, можно ли перехватить запрос. – dcatoday

+0

Вы нашли ответ на свой вопрос? Я пытаюсь сделать то же самое. не повезло. –

+0

Эй @jamesemanon Я использовал компрессионный пакет npm, и он работает хорошо. Это уменьшило размер моего сайта до менее 200 кбайт, не считая изображения. – dcatoday

ответ

0

Вы можете использовать модуль compression НПМ.

Вы можете найти пример here.

Затем сжатие поддерживается уровнем HTTP, и это происходит прозрачно. Нет необходимости изменять расширения файлов или сжимать файл заранее.

Сервер будет выполнять сжатие для вас, если вы не хотите напрямую обслуживать сжатый файл. В этом случае формат сжатия файла выводится из расширения.

Если вы хотите сэкономить время обработки, вы можете установить обратный прокси-кеш перед своим сервером.

+0

Эй, это то, что я сделал. Я добавил его в качестве комментария к моему оригинальному сообщению. – dcatoday

+0

Решает ли ваша проблема ваша проблема? Если это так, вы можете выбрать его как ответ? – arboreal84