express.js压缩中间件不起作用
我的应用程序中有以下中间件:
app.use(express.favicon(__dirname + '/static/public/images/favicon.ico')); app.use(express.compress()); app.use(express.json()); app.use(express.urlencoded()); app.use(express.cookieParser('SECRET!')); app.use(express.static(__dirname + config.static_path, {maxAge: 365 * 86400000})); app.use(express.session({secret: 'SECRET!'})); app.use(flash()); app.use(passport.initialize()); app.use(passport.session()); app.use(app.router);
标题示例:
但静态内容不压缩。 可能是什么问题呢?
有几个原因可能导致您的静态内容不能被压缩:
-
express.compress
保持最小的文件大小阈值; 大小低于此阈值的文件(默认:1024字节)将不会被压缩; -
express.compress
还维护一个内容types的白名单进行压缩; 如果您提供的文件的内容types不在该列表中,则该文件也不会被压缩;
修理:
app.use(express.compress({ threshold : 0, // or whatever you want the lower threshold to be filter : function(req, res) { var ct = res.get('content-type'); // return `true` for content types that you want to compress, // `false` otherwise ... } }));
(作为参考, 这是使用的默认filterfunction)
问题是重新路由到第80个港口,如:
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
感谢@robertklep的帮助!