diff --git a/config/config.go b/config/config.go index 60fd8ef..dce4890 100644 --- a/config/config.go +++ b/config/config.go @@ -43,6 +43,10 @@ type CacheConfig struct { Hostname string `env:"CACHE_HOSTNAME,default=localhost"` Port uint16 `env:"CACHE_PORT,default=6379"` Password string `env:"CACHE_PASSWORD"` + MaxAge struct { + StaticFile int `env:"CACHE_MAX_AGE_STATIC_FILE,default=15552000"` + Page int `env:"CACHE_STATIC_FILE_MAX_AGE,default=86400"` + } } // GetConfig loads and returns application configuration diff --git a/controllers/page.go b/controllers/page.go index d03b0fc..9d2f03b 100644 --- a/controllers/page.go +++ b/controllers/page.go @@ -34,6 +34,11 @@ type Page struct { } Pager pager.Pager CSRF string + Cache struct { + Enabled bool + MaxAge int + Tags []string + } } func NewPage(c echo.Context) Page { diff --git a/controllers/router.go b/controllers/router.go index 08d51f5..2f7a2fa 100644 --- a/controllers/router.go +++ b/controllers/router.go @@ -32,7 +32,7 @@ func BuildRouter(c *container.Container) { // Static files with proper cache control // funcmap.File() should be used in templates to append a cache key to the URL in order to break cache // after each server restart - c.Web.Group("", middleware.CacheControl(15552000)). + c.Web.Group("", middleware.CacheControl(c.Config.Cache.MaxAge.StaticFile)). Static("/", StaticDir) // Base controller