Expand description
Axum 中间件与启动期纯函数。
从 main.rs 抽出的、可独立测试的服务端 HTTP 中间件(cache-control、admin
守卫)与压缩层构造逻辑。整体 server-only——WASM 构建不会编译本模块。
这些函数此前散落在 main.rs,既无法单独测试也使入口职责过载。迁移后
main.rs 的路由组装以全路径 crate::middleware::xxx 引用,语义不变。
Structs§
- Compression
Algorithms 🔒 - 压缩算法配置。
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决定是否挂载本层。