【问题标题】:gzip returns only html as plain txtgzip 仅将 html 作为纯 txt 返回
【发布时间】:2015-08-29 10:01:18
【问题描述】:

我的路由仅返回 html 作为文本,而不是获取 .gz 文件并将其作为 javascript 或 css 提供:

    router.get('/', function (req, res, next) {
 try {
  res.setHeader('Content-Type', 'text/event-stream')
  res.setHeader('Cache-Control', 'no-cache')

// send a ping approx every 2 seconds
  var timer = setInterval(function () {
   res.write('data: ping\n\n')

   // !!! this is the important part
   res.flush()
  }, 2000)

  res.on('close', function () {
   clearInterval(timer)
  })

  res.render('index', mergedData.globals);

     }
 catch (err) {
  res.render('error', {message: clientData.globals.globalErrorMessage});
  //debug.log ?
 }
});

【问题讨论】:

    标签: javascript node.js express gzip zlib


    【解决方案1】:

    据我所知,您正在尝试为您的 html/css/javascript 使用 gzip 编码。在 express 中最简单的方法是使用 compression 中间件。下载后,将其添加到您的依赖项中,将其附加为如下所示:

    var compression = require('compression');
    
    app.use(compression());
    

    服务器现在将在将您的文件发送到客户端之前对其进行压缩。

    或者,如果您使用自己的解决方案来压缩文件,则必须记住将 Content-Encoding 标头设置为 gzip,如下所示:res.setHeader('Content-Encoding', 'gzip');

    【讨论】:

    猜你喜欢
    • 2022-01-03
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    • 2020-04-11
    • 2018-11-13
    • 1970-01-01
    • 2020-06-21
    相关资源
    最近更新 更多