diff options
Diffstat (limited to 'internal/headers.go')
| -rw-r--r-- | internal/headers.go | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/internal/headers.go b/internal/headers.go new file mode 100644 index 0000000..47aa2cc --- /dev/null +++ b/internal/headers.go @@ -0,0 +1,20 @@ +package internal + +import ( + "net/http" + + "github.com/TecharoHQ/anubis" +) + +// UnchangingCache sets the Cache-Control header to cache a response for 1 year if +// and only if the application is compiled in "release" mode by Docker. +func UnchangingCache(h http.Handler) http.Handler { + if anubis.Version == "devel" { + return h + } + + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Cache-Control", "public, max-age=31536000") + h.ServeHTTP(w, r) + }) +} |
