Skip to main content

Module middleware

Module middleware 

Source
Expand description

Axum 中间件与启动期纯函数。

main.rs 抽出的、可独立测试的服务端 HTTP 中间件(cache-control、admin 守卫)与压缩层构造逻辑。整体 server-only——WASM 构建不会编译本模块。

这些函数此前散落在 main.rs,既无法单独测试也使入口职责过载。迁移后 main.rs 的路由组装以全路径 crate::middleware::xxx 引用,语义不变。

Structs§

CompressionAlgorithms 🔒
压缩算法配置。

Functions§

add_cache_control 🔒
Axum 中间件:为公开页面和静态资源附加 Cache-Control 头。
admin_guard 🔒
Axum 中间件:/admin* 的 SSR 层认证守卫。
cache_control_for_path 🔒
根据请求路径和方法决定公开页面的 Cache-Control 头。 返回 None 表示不添加缓存头(保留现有行为或避免覆盖)。
compression_layer_from_env 🔒
根据 COMPRESSION_ALGORITHMS 环境变量构造 CompressionLayer。 默认(未设置时)关闭压缩;显式设为 “all” 启用全部算法,设为 “gzip,brotli,…” 按需选择;设为 “”、“none” 或 “off” 等价于不启用。
parse_compression_algorithms 🔒
解析 COMPRESSION_ALGORITHMS 环境变量值。 “”、“none”、“off” 返回 None;“all” 或未识别到任何算法时启用全部。
ssr_generation_middleware 🔒
Axum 中间件:把当前 SSR 全局世代号注入请求扩展,并对 GET 请求的响应附加 X-SSR-Generation 头。这是为未来 Dioxus 支持自定义 SSR 缓存键预留的钩子; 目前主要提供可观测性,不会实际失效 SSR 缓存。
version_headers_middleware 🔒
Axum 中间件:为所有响应附加 Server / X-Yggdrasil-Version / X-Yggdrasil-Git 头。 数据源与启动日志 log_build_info() 同源(crate::build_info::BUILD_INFO)。 受 EXPOSE_VERSION_HEADERS 控制——该开关在 main.rs 决定是否挂载本层。