Enable brotli compression for API and static files

- Add compression-br feature to tower-http
- Apply CompressionLayer to API routes (JSON responses)
- Apply CompressionLayer to static files (CSS, JS, locales)
- File downloads remain uncompressed (avoid double compression)
This commit is contained in:
George Wu
2026-02-17 22:58:56 -08:00
parent f661282962
commit b28aa341b3
4 changed files with 42 additions and 5 deletions
+2 -1
View File
@@ -358,7 +358,8 @@ pub fn create_api_routes(app_state: &AppState) -> Router<AppState> {
let admin_router = admin_handler::admin_routes().with_state(app_state.clone());
router = router.nest("/admin", admin_router);
// Compression for API responses (JSON) — excludes file downloads
router
.layer(CompressionLayer::new())
.layer(CompressionLayer::new().br(true).gzip(true))
.layer(TraceLayer::new_for_http())
}