【问题标题】:nodejs express: compression of response doesn't worknodejs express:响应压缩不起作用
【发布时间】:2013-12-07 20:54:25
【问题描述】:

我正在尝试使用 NodeJS/Express 提供压缩视图。

即使我正确配置了应用程序,也没有压缩痕迹。只压缩静态文件。

如果我在 Chrome 中访问视图,我找不到字段 Content-Encoding: gzip

以下是我的 Express 应用的配置:

    app.set('port', process.env.PORT || 3000);
    app.set('views', __dirname + '/views');

    app.engine('html', ejs.renderFile);
    app.set('view engine', 'ejs');

    app.use(express.favicon());
    app.use(express.logger('dev'));

    app.use(express.bodyParser());
    app.use(expressValidator());
    app.use(express.methodOverride());

    app.use(express.staticCache());
    app.use(gzippo.staticGzip( path.join(__dirname, 'public') ,{maxAge:86400000} ));
    app.use(gzippo.compress());
    //app.use(express.compress());

    app.use(app.router);

请注意,我使用 gzippo 进行压缩。但是基本压缩express.compress() 也不起作用。

【问题讨论】:

  • 你为什么使用 gzippo?它不支持节点 0.10

标签: node.js http express compression gzip


【解决方案1】:

将压缩移动到view item 之后的第一个项目。此外,请务必在检查 Chrome 网络标记以查找 Encoding 标头之前清除缓存。

【讨论】:

  • 但是为什么必须先压缩?
  • 我知道视图在被压缩之前已经被提供了:expressjs.com/3x/api.html#app.use "使用 app.use() “定义”中间件的顺序非常重要,它们是按顺序调用的,因此这定义了中间件优先级。” ...我正在尝试自己弄清楚如何在 Express 4 中使用压缩...
  • 我一生都在试图弄清楚为什么我的内容类型没有被设置。如果您在 Chrome 中清除缓存,则内容类型设置正确。谢谢你。
  • 很奇怪,在 chrome 网络选项卡中,它向我显示 Content-Encoding:gzip,但使用每个 gzip 测试工具,它都向我显示没有 gzip 压缩。 checkgzipcompression.com 任何想法我应该相信哪个工具?好的,谷歌工具告诉我是的:developers.google.com/speed/pagespeed/insights
猜你喜欢
  • 2016-11-20
  • 2016-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-09
  • 2017-10-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多