如何在浏览器上查看brotli压缩文件?
How to view brotli compressed files on browser?
我正在尝试静态提供 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
文件被压缩了。但是我怎样才能在浏览器上看到它呢?
当我转到那个页面时,我看到的是:
我以为浏览器会理解这是一个 brotli 编码的文件。但它没有。当我查看响应 headers、
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
没有编码集。我该如何解决这个问题?
您正在使用 http-server,这是一个非常简单的 HTTP 服务器,不允许您显式设置内容编码。
好像有an issue raised to add Brotli support,但还没完成。即使是,它也仅用于提供静态的、预压缩的文件(假设它的实现方式与 --gzip
选项相同)。
要像你想的那样使用动态 brotli,你必须使用普通节点 http.createServer code or something like express。
我正在尝试静态提供 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
文件被压缩了。但是我怎样才能在浏览器上看到它呢?
当我转到那个页面时,我看到的是:
我以为浏览器会理解这是一个 brotli 编码的文件。但它没有。当我查看响应 headers、
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
没有编码集。我该如何解决这个问题?
您正在使用 http-server,这是一个非常简单的 HTTP 服务器,不允许您显式设置内容编码。
好像有an issue raised to add Brotli support,但还没完成。即使是,它也仅用于提供静态的、预压缩的文件(假设它的实现方式与 --gzip
选项相同)。
要像你想的那样使用动态 brotli,你必须使用普通节点 http.createServer code or something like express。