2017-02-05 76 views
0

我有一个角度2应用程序,我用cli和gzipped构建。我可以从dist文件夹提供应用程序,但我想提供js文件的.gz版本以进一步提高性能。拦截.js请求并附加.gz与节点和快递

Express服务器文件的尝试:

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包,它运行良好。它将我的网站大小减少到不足200kb,不计算图像。 – dcatoday

回答

0

可以使用compression NPM模块。

你可以找到一个例子here

然后,HTTP层支持压缩,并且它透明地发生。无需预先修改文件扩展名或压缩文件。

服务器会为你做压缩,除非你想直接提供压缩文件。在这种情况下,文件压缩格式是从扩展中推断出来的。

如果您希望节省自己的处理时间,可以在服务器前放置一个反向代理缓存。

+0

嘿,那就是我所做的。我将它添加为我的原始帖子的评论。 – dcatoday

+0

这是否解决您的问题?如果是这样,你可以选择它作为答案? – arboreal84