【问题标题】:express and compression, can't find what I make wrong :-(表达和压缩,找不到我做错了什么:-(
【发布时间】:2017-06-23 21:18:16
【问题描述】:

我找不到为什么我不能压缩我的内容。 我尝试了很多方法,但是当我在静态页面或基本本地内容( / )上检查 curl ( curl -I -H 'Accept-Encoding: gzip' http://localhost:8080/free.html )时,我找不到任何方法来压缩我的内容

我做错了什么? 这是我的代码:

var express = require('express');
var compression =   require('compression');
var morgan =        require('morgan');
var favicon =       require('serve-favicon');

var app =           express();

app.use(compression({
    filter: function () { return true; }
}));
app.use(morgan('combined'));
app.use(favicon(__dirname + '/public/favicon.ico'));
app.use(express.static(__dirname + '/public'));



app.get('/', function(req, res) {
    res.setHeader('Content-Type', 'text/plain');
    res.end('Vous êtes à l\'accueil');
});
app.use(function(req, res){
    res.send(404);
});

app.listen(8080);

谢谢

格雷戈里

【问题讨论】:

    标签: node.js express curl http-compression


    【解决方案1】:

    我还没有弄清楚为什么,但似乎如果阈值设置得不够低,它就不会对其进行编码。这是一个例子:

    var express = require('express')
    var app = express()
    var compression = require('compression')
    
    app.use(compression({ threshold: 6 }))
    // app.use(express.static(__dirname + '/dist'))
    
    app.all("/*", function(req, res, next) {
      res.send('done')
    })
    
    var server = app.listen(8080)
    

    文档声明 6 是默认值。当我测试这个时:

    $ curl -i -H 'Accept-Encoding: gzip' http://localhost:8080
    

    未设置 Content-Encoding 标头。当我将其设置为阈值 4 或更低时,它会以编码内容进行响应:

    HTTP/1.1 200 OK
    X-Powered-By: Express
    Content-Type: text/html; charset=utf-8
    Vary: Accept-Encoding
    Content-Encoding: gzip   // <——————————
    Date: Mon, 06 Feb 2017 20:23:24 GMT
    Connection: keep-alive
    Transfer-Encoding: chunked
    
    K??K??-⏎      
    

    【讨论】:

    • 你摇滚!正是重点,加上门槛才是重点!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2017-09-29
    • 2021-11-28
    • 2014-11-06
    • 2010-12-17
    • 1970-01-01
    • 2017-05-10
    • 2011-05-13
    相关资源
    最近更新 更多