admin: pre-gzip embedded static assets, add cache headers (#9918)

The admin UI served embedded static files uncompressed and without
cache headers: embed.FS has zero mod times, so no Last-Modified, no
ETag, no 304s -- every page load re-downloaded ~700KB of css/js in
full, which gets painful over slow or tunneled links.

Gzip the static tree at generation time (go generate ./weed/admin)
and embed only the compressed mirror, shrinking the binary ~1.5MB.
The handler hands the pre-compressed bytes to gzip-capable clients,
decompresses for the rest, and sets Cache-Control, per-variant
content-hash ETags and Vary so repeat loads revalidate with a 304.
bootstrap.min.css goes 232KB -> 30KB on the wire.

A drift test keeps static_gz/ in sync with static/.
This commit is contained in:
Chris Lu authored and GitHub committed 2026-06-10 12:54:36 -07:00
1 parent c2271d59bb
commit e56a1c4c05
24 files changed
+406 -17

No files matched your search

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.