拦截.js请求并使用node和express附加.gz

时间:2017-02-05 07:02:25

标签: javascript node.js angular express angular-cli

我有一个使用cli和gzip构建的角度2应用程序。我可以从dist文件夹中提供应用程序,但我想提供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();
});

1 个答案:

答案 0 :(得分:0)

您可以使用compression npm模块。

您可以找到示例here

然后,HTTP层支持压缩,它会透明地发生。无需提前修改文件扩展名或压缩文件。

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

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