无法在Nodejs中压缩静态文件

时间:2014-03-09 22:54:57

标签: node.js express gzip gzippo

Gzipping静态文件不能按要求工作(我认为)。我使用了gzippoexpress.compress()。两次gzipp文件一次。如果我再次刷新页面,则没有Content-Encoding:gzip

她是我如何设置我的快递应用程序:

    var gzippo = require('gzippo');
    var express = require('express');
    var app = express();
    app.use(express.compress());
    app.use(app.router);

    app.use(gzippo.staticGzip(__dirname + '/www'));

这是Chrome网络响应标题在页面更新后显示的内容:

完整请求标题

已编辑

    GET / HTTP/1.1
    Host: myhost.com
    Connection: keep-alive
    Cache-Control: max-age=0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/ *;q=0.8
    User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36
    Accept-Encoding: gzip,deflate,sdch
    Accept-Language: en-US,en;q=0.8
    Cookie: __utma=161759779.498387976.1381482631.1394444924.1394395346.80; __utmb=161759779.3.10.1394395346; __utmc=161759779; __utmz=161759779.1394444924.79.7.utmcsr=gtmetrix.com|utmccn=(referral)|utmcmd=referral|utmcct=/reports/myhost.com/5iXAs1ej/retest
    If-None-Match: "25020-1394452200000"
    If-Modified-Since: Mon, 10 Mar 2014 11:50:00 GMT

如果我再次刷新,则会显示:已编辑并显示完整的回复标题。

    HTTP/1.1 304 Not Modified
    x-powered-by: Express
    accept-ranges: bytes
    etag: "25020-1394452200000"
    date: Mon, 10 Mar 2014 10:51:45 GMT
    cache-control: public, max-age=0
    last-modified: Mon, 10 Mar 2014 11:50:00 GMT

如果我再次编辑页面,我会Content-Encoding:gzip,但只有一次。 我不知道我的快速设置是否有问题。

注意:我将页面作为:res.sendfile(__dirname + '/www/index.html');

提供

1 个答案:

答案 0 :(得分:3)

  

如果我再次编辑页面,我会获得Content-Encoding:gzip但只有一次。我不知道我的快速设置是否有问题。

一切都很好。服务器第一次使用gzip压缩发送文件。第二次正常的etag缓存机制发挥作用,并且由于文件没有被修改,服务器告诉浏览器“你已经拥有了这个文件的正确版本”,因此服务器不需要发送响应body,只是标题,因此不需要任何Content-Encoding标题。