diff --git a/src/main.rs b/src/main.rs index 8dd9c84..fea3db8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -108,6 +108,15 @@ fn parse_compression_algorithms(env: &str) -> Option { /// 根据 COMPRESSION_ALGORITHMS 环境变量构造 CompressionLayer。 /// 未设置或设置为 "all" 时启用全部算法;设置为 ""、"none" 或 "off" 时禁用。 +/// +/// CompressionLayer 使用 tower-http 的 `DefaultPredicate`,开箱即用即: +/// - 跳过 `image/*` content-type(WebP/PNG/JPEG/GIF 等已是压缩格式,再压浪费 CPU, +/// 唯一例外是 `image/svg+xml`,作为 XML 文本可被压缩); +/// - 跳过 gRPC 与 `text/event-stream`(SSE); +/// - 跳过小于 32 字节的响应。 +/// +/// 因此无需在此处对图片响应做额外的 content-type 过滤。另:图片实际挂在 +/// `static_routes`(无中间件),根本不经此层,详见下方路由 merge 处。 #[cfg(feature = "server")] fn compression_layer_from_env() -> Option { use tower_http::compression::CompressionLayer;