bskyweb: do not serve cache headers on non-2XX for static assets (#7469)
This commit is contained in:
@@ -214,15 +214,21 @@ func serve(cctx *cli.Context) error {
|
|||||||
e.GET("/iframe/youtube.html", echo.WrapHandler(staticHandler))
|
e.GET("/iframe/youtube.html", echo.WrapHandler(staticHandler))
|
||||||
e.GET("/static/*", echo.WrapHandler(http.StripPrefix("/static/", staticHandler)), func(next echo.HandlerFunc) echo.HandlerFunc {
|
e.GET("/static/*", echo.WrapHandler(http.StripPrefix("/static/", staticHandler)), func(next echo.HandlerFunc) echo.HandlerFunc {
|
||||||
return func(c echo.Context) error {
|
return func(c echo.Context) error {
|
||||||
path := c.Request().URL.Path
|
c.Response().Before(func() {
|
||||||
maxAge := 1 * (60 * 60) // default is 1 hour
|
if c.Response().Status >= 300 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// all assets in /static/js, /static/css, /static/media are content-hashed and can be cached for a long time
|
path := c.Request().URL.Path
|
||||||
if strings.HasPrefix(path, "/static/js/") || strings.HasPrefix(path, "/static/css/") || strings.HasPrefix(path, "/static/media/") {
|
maxAge := 1 * (60 * 60) // default is 1 hour
|
||||||
maxAge = 365 * (60 * 60 * 24) // 1 year
|
|
||||||
}
|
|
||||||
|
|
||||||
c.Response().Header().Set("Cache-Control", fmt.Sprintf("public, max-age=%d", maxAge))
|
// all assets in /static/js, /static/css, /static/media are content-hashed and can be cached for a long time
|
||||||
|
if strings.HasPrefix(path, "/static/js/") || strings.HasPrefix(path, "/static/css/") || strings.HasPrefix(path, "/static/media/") {
|
||||||
|
maxAge = 365 * (60 * 60 * 24) // 1 year
|
||||||
|
}
|
||||||
|
|
||||||
|
c.Response().Header().Set("Cache-Control", fmt.Sprintf("public, max-age=%d", maxAge))
|
||||||
|
})
|
||||||
return next(c)
|
return next(c)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user