From 38110bb19dcd4ed5d83a5165da13e02c17ea0e76 Mon Sep 17 00:00:00 2001 From: Lizzy Hunt Date: Mon, 1 Apr 2024 17:34:14 -0600 Subject: [PATCH] add cache control to static server --- api/serve.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/api/serve.go b/api/serve.go index 7cef1c9..2cddcfd 100644 --- a/api/serve.go +++ b/api/serve.go @@ -66,11 +66,19 @@ func IdContinuation(context *RequestContext, req *http.Request, resp http.Respon } } +func CacheControlMiddleware(next http.Handler, maxAge int) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + header := fmt.Sprintf("public, max-age=%d", maxAge) + w.Header().Set("Cache-Control", header) + next.ServeHTTP(w, r) + }) +} + func MakeServer(argv *args.Arguments, dbConn *sql.DB) *http.Server { mux := http.NewServeMux() fileServer := http.FileServer(http.Dir(argv.StaticPath)) - mux.Handle("GET /static/", http.StripPrefix("/static/", fileServer)) + mux.Handle("/static/", http.StripPrefix("/static/", CacheControlMiddleware(fileServer, 3600))) makeRequestContext := func() *RequestContext { return &RequestContext{