Gzip

使用 gzip 算法压缩文件

配置参数

extensions string[] *

The list of extensions this plugin applies to

Default:
[
  ".html", ".css",
  ".js",   ".mjs",
  ".svg",  ".json",
  ".xml",  ".txt"
]

Gzip 是一种文件格式,可被 Web 服务器和 CDN 用于压缩 HTTP 内容。

此插件会创建文件的预压缩版本。例如,除了 /index.html 之外,它还会创建一个压缩版本 /index.html.gz

安装

在你的 _config.ts 文件中导入此插件以使用它:

import lume from "lume/mod.ts";
import gzip from "lume/plugins/gzip.ts";

const site = lume();

site.use(gzip());

export default site;

默认情况下,仅压缩某些基于文本的格式,如 .html.css.js.svg.json 等。 像图片或视频这样的二进制文件不会被压缩,因为它们大多数都有自己的压缩方式。 使用 extensions 选项来配置你想要压缩的文件扩展名:

site.use(gzip({
  extensions: [".html", ".css"],
}));

如何提供预压缩文件

如果你使用 Deno Deploy,你可以使用 precompress 中间件,它会在 .br 版本可用且浏览器支持的情况下自动提供 .br 版本。

许多其他 Web 服务器也具有提供预压缩文件的选项,例如 NginxCaddy,或者像 HonoFastifyKoa 这样的框架。