perf: Medien aufbereiten (pnpm media:optimize) und länger cachen

Ursachen der langen Ladezeiten: Reel-Video 1,6 GB in 4K mit Index am Dateiende, Headerbild 15 MB, Vorschaubild 1,3 MB im Original. Neues Skript erzeugt Web-Fassungen (<name>.web.mp4, 1080p, faststart; verkleinerte Bilder), die Seite bevorzugt sie automatisch. Mediendateien mit ?v= werden ein Jahr (immutable) gecacht, optimierte Bilder 30 Tage.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
Nick SzaunigandClaude Opus 5.5 committed 2026-10-06 07:17:31 +02:00
1 parent 1ca09cbaef
commit d45700a9ef
7 files changed
+321 -1

No files matched your search

+3 -1
View File
@@ -47,7 +47,9 @@ export async function GET(request: Request, { params }: { params: Promise<{ path
const headers: Record<string, string> = {
"Content-Type": type,
"Accept-Ranges": "bytes",
"Cache-Control": "public, max-age=86400",
// Mit ?v=<Aenderungsdatum> (site-media.ts) aendert sich die Adresse bei
// jedem Austausch: dann ein Jahr cachen, sonst einen Tag.
"Cache-Control": new URL(request.url).searchParams.has("v") ? "public, max-age=31536000, immutable" : "public, max-age=86400",
"X-Content-Type-Options": "nosniff",
// SVG (Logo) direkt aufgerufen: keine Skripte, keine Nachladungen.
...(type === "image/svg+xml" ? { "Content-Security-Policy": "default-src 'none'; style-src 'unsafe-inline'; sandbox" } : {}),