Gzipping静态文件不能按要求工作(我认为)。我使用了gzippo
和express.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');
答案 0 :(得分:3)
如果我再次编辑页面,我会获得Content-Encoding:gzip但只有一次。我不知道我的快速设置是否有问题。
一切都很好。服务器第一次使用gzip压缩发送文件。第二次正常的etag缓存机制发挥作用,并且由于文件没有被修改,服务器告诉浏览器“你已经拥有了这个文件的正确版本”,因此服务器不需要发送响应body,只是标题,因此不需要任何Content-Encoding
标题。