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{