如何在express / nodejs中添加标题到静态gzip文件?

我有一些来自Unity构build的文件,我无法添加标题。 他们有扩展jsgz,memgz和datagz。 它们位于我的NodeJs项目中的公共文件夹中。 我正在使用Express 4,并设置了压缩,但我相信这只会压缩现有的文件进行传输,并不处理已压缩的文件。 我已经尝试使用app.get添加标题,但它似乎不工作:

app.get('/blah/unitymodels/Release/widget.js', function(req, res, next) { ... Check ['accept-encoding'] ... if (acceptsGzip) { var gzippedPath = req.url + 'gz'; res.sendFile(gzippedPath, { root: './public', headers: { 'Content-Encoding': 'gzip', 'Content-Type': 'application/javascript' } } ... 

我已经尝试设置这样的标题,通过使用res.set和先设置它们,然后让下一个()调用处理响应,但每当我得到的文件,它只是gzip文件没有额外的头文件和浏览器不理解它。 我试过的方法是添加其他头文件('wibble','x-timestamp'等),所以我认为别的东西是拦截这些特定的。 我怎么能够返回这些gzip文件,以便浏览器了解他们?

您可以使用express-static-gzip作为Express中间件,如下所示:

 /* here serves gzipped static files */ app.use('/my_static/zipped/', expressStaticGzip('my_static/zipped/', { customCompressions: [{ encodingName: "gzip", fileExtension: "gz" }] })); /* here serves other static files */ app.use('/my_static', express.static('my_static'));