【问题标题】:Express.js: how to get assets gzippedExpress.js:如何压缩资产
【发布时间】:2013-09-21 12:23:53
【问题描述】:

我用的是compress()中间件,把它放在configure()的前面。

app.configure('all', function(){
  app.use(express.compress());
  ...
  app.use(express.static('public'), { maxAge: oneMonth });
})

如何检查我的内容是否经过 gzip 压缩?我有一个奇怪的情况: 1)在我的开发机器上:我要求 localhost:4000/mystyle.css - 看不到 Content-encoding: gzip

2) 当我将它部署到生产环境时,如果我请求它自己的文件 mydomain.com/mystyle.css - 我看到那里看到 Content-encoding: gzip

3) 我请求 mydomain.com 并在 chrome 开发工具中的 Network 中查看,找到 mystyle.css 并且我没有看到 Content-encoding: gzip

4) 我使用不同的服务来检查我的内容是否经过 gzip 压缩,有些人说是,有些人说不是。

WTF?谁能解释一下?

【问题讨论】:

    标签: express gzip


    【解决方案1】:

    您的问题是您对 app.configure 的使用。这在很大程度上已被弃用,但您专门使用它来寻找all 环境。

    documentation 解释说:“由于遗留原因,此方法仍然存在,实际上是一个 if 语句,如下面的 sn-ps 所示。”

    相反,只需使用 app.use 而不将它们包装在配置语句中。

    【讨论】:

    • 如果必须,可以使用app.configure(function(){app.use()...})
    • 实际上是的,现在编码是存在的,谢谢。为什么这是一个问题?
    • 这是一个问题,因为您没有将 process.env.NODE_ENV 设置为 'all'。
    • @dankohn 但应用了其他配置设置(如 bodyParser、会话)。
    • 这很好奇。您可以使用一堆 console.log 语句来弄清楚到底发生了什么,但我不会打扰。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-23
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多