Brotli
使用 Brotli 算法压缩文件
配置参数
- extensions string[] *
The list of extensions this plugin applies to
Default:[ ".html", ".css", ".js", ".mjs", ".svg", ".json", ".xml", ".txt" ]
- quality number
Quality param between 0 and 11 (11 is the smallest but takes the longest to encode)
Default:6
Brotli 是一种由 Google 开发的无损数据压缩算法,主要被 Web 服务器和 CDN 用于压缩 HTTP 内容。在 Web 上,它被用作 gzip 的替代品,因为它提供更好的总体压缩效果。
此插件会创建文件的预压缩版本。例如,除了 /index.html
之外,它还会创建一个压缩版本 /index.html.br
。
安装
在你的 _config.ts
文件中导入此插件以使用它:
import lume from "lume/mod.ts";
import brotli from "lume/plugins/brotli.ts";
const site = lume();
site.use(brotli());
export default site;
默认情况下,仅压缩某些基于文本的格式,例如 .html
、.css
、.js
、.svg
、.json
等。像图像或视频这样的二进制文件不会被压缩,因为它们大多数都有自己的压缩。使用 extensions
选项来配置你想压缩哪些扩展名:
site.use(brotli({
extensions: [".html", ".css"],
}));
如何提供预压缩文件
如果你正在使用 Deno Deploy,你可以使用 precompress 中间件,它会在 .br
版本可用且浏览器支持的情况下自动提供该版本。
许多其他 Web 服务器也具有提供预压缩文件的选项,例如 Caddy,或者像 Hono、Fastify 或 Koa 这样的框架。