From 2a635d0aaaba7537dfc31f09d5d4d4509ceb71f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Untersch=C3=BCtz?= Date: Tue, 6 Jan 2026 18:46:48 +0100 Subject: [PATCH] Add Cache-Control headers for static assets and versioned WASM/JS files in Gin server --- cmd/server/gin_server.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/cmd/server/gin_server.go b/cmd/server/gin_server.go index a1eb54b..be63e31 100644 --- a/cmd/server/gin_server.go +++ b/cmd/server/gin_server.go @@ -29,6 +29,20 @@ func SetupGinServer(ec *nats.EncodedConn, port string) *gin.Engine { // Recovery Middleware r.Use(gin.Recovery()) + // Cache Control Middleware für statische Assets + r.Use(func(c *gin.Context) { + path := c.Request.URL.Path + // Assets (Bilder, Fonts, etc.) - 1 Jahr cachen + if len(path) > 7 && path[:8] == "/assets/" { + c.Header("Cache-Control", "public, max-age=31536000, immutable") + } + // WASM und JS Dateien - nur cachen wenn mit ?v= Parameter + if (path == "/main.wasm" || path == "/game.js" || path == "/wasm_exec.js") && c.Query("v") != "" { + c.Header("Cache-Control", "public, max-age=31536000, immutable") + } + c.Next() + }) + // Health Check Endpoint r.GET("/health", func(c *gin.Context) { c.JSON(200, gin.H{