如何在浏览器中查看brotli压缩文件?

时间:2019-04-06 17:53:04

标签: node.js server compression brotli

我正在尝试静态提供brotli压缩文件。我能够使用以下代码压缩文件:

// node.js
const compressStream = require("iltorb").compressStream;
const fs = require("fs");

const wrr = fs.createWriteStream("index-b.html");

fs.createReadStream("index.html")
  .pipe(compressStream())
  .pipe(wrr);

因此现在index-b.html文件已压缩。但是如何在浏览器上看到呢?

当我转到该页面时,这就是我所看到的:

enter image description here

我认为浏览器会理解这是brotli编码的文件。但事实并非如此。当我查看响应标题时,

HTTP/1.1 200 OK
server: ecstatic-3.3.1
cache-control: max-age=3600
last-modified: Sat, 06 Apr 2019 17:27:32 GMT
etag: W/"281474976993459-334-2019-04-06T17:27:32.047Z"
content-length: 334
content-type: text/html; charset=UTF-8
Date: Sat, 06 Apr 2019 17:36:49 GMT
Connection: keep-alive

没有设置编码。我该如何解决?

1 个答案:

答案 0 :(得分:0)

您正在使用http-server,这是一个非常简单的HTTP服务器,并且不允许您显式设置内容编码。

似乎有an issue raised to add Brotli support,但尚未完成。即使是这样,它也仅打算提供静态的预压缩文件(假设它将与--gzip选项实现相同的方式)。

要按需使用动态brotli,必须使用普通的Node http.createServer代码或类似express的代码。