perf: optimize cache headers for CDN-first caching
Use s-maxage=86400 for Cloudflare edge caching (24h) with max-age=0 so browsers always fetch from CDN. Combined with existing cache purge on content changes, this minimizes origin server load while ensuring fresh content. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
b56757770d
commit
a6e1069e45
1 changed files with 7 additions and 7 deletions
|
|
@ -98,7 +98,7 @@ func (s *Server) blogHome(w http.ResponseWriter, r *http.Request) {
|
||||||
s.recordPageView(q, r, "/", "")
|
s.recordPageView(q, r, "/", "")
|
||||||
|
|
||||||
if html, etag, err := q.GetPage(r.Context(), "/"); err == nil && html != nil {
|
if html, etag, err := q.GetPage(r.Context(), "/"); err == nil && html != nil {
|
||||||
s.servePreRendered(w, r, html, etag, "public, max-age=300")
|
s.servePreRendered(w, r, html, etag, "public, s-maxage=86400, max-age=0")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -156,7 +156,7 @@ func (s *Server) blogHome(w http.ResponseWriter, r *http.Request) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
s.servePreRendered(w, r, html, computeETag(html), "public, max-age=300")
|
s.servePreRendered(w, r, html, computeETag(html), "public, s-maxage=86400, max-age=0")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Server) blogList(w http.ResponseWriter, r *http.Request) {
|
func (s *Server) blogList(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
@ -172,7 +172,7 @@ func (s *Server) blogList(w http.ResponseWriter, r *http.Request) {
|
||||||
s.recordPageView(q, r, "/posts", "")
|
s.recordPageView(q, r, "/posts", "")
|
||||||
|
|
||||||
if html, etag, err := q.GetPage(r.Context(), "/posts"); err == nil && html != nil {
|
if html, etag, err := q.GetPage(r.Context(), "/posts"); err == nil && html != nil {
|
||||||
s.servePreRendered(w, r, html, etag, "public, max-age=300")
|
s.servePreRendered(w, r, html, etag, "public, s-maxage=86400, max-age=0")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -223,7 +223,7 @@ func (s *Server) blogList(w http.ResponseWriter, r *http.Request) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
s.servePreRendered(w, r, html, computeETag(html), "public, max-age=300")
|
s.servePreRendered(w, r, html, computeETag(html), "public, s-maxage=86400, max-age=0")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Server) blogPost(w http.ResponseWriter, r *http.Request) {
|
func (s *Server) blogPost(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
@ -249,7 +249,7 @@ func (s *Server) blogPost(w http.ResponseWriter, r *http.Request) {
|
||||||
s.recordPageView(q, r, path, slug)
|
s.recordPageView(q, r, path, slug)
|
||||||
|
|
||||||
if html, etag, err := q.GetPage(r.Context(), path); err == nil && html != nil {
|
if html, etag, err := q.GetPage(r.Context(), path); err == nil && html != nil {
|
||||||
s.servePreRendered(w, r, html, etag, "public, max-age=3600")
|
s.servePreRendered(w, r, html, etag, "public, s-maxage=86400, max-age=0")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -457,7 +457,7 @@ func (s *Server) blogPost(w http.ResponseWriter, r *http.Request) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
s.servePreRendered(w, r, html, computeETag(html), "public, max-age=3600")
|
s.servePreRendered(w, r, html, computeETag(html), "public, s-maxage=86400, max-age=0")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Server) canPreview(r *http.Request, tenantID string) bool {
|
func (s *Server) canPreview(r *http.Request, tenantID string) bool {
|
||||||
|
|
@ -543,7 +543,7 @@ func (s *Server) sitemap(w http.ResponseWriter, r *http.Request) {
|
||||||
baseURL := getBaseURL(r.Host)
|
baseURL := getBaseURL(r.Host)
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "application/xml; charset=utf-8")
|
w.Header().Set("Content-Type", "application/xml; charset=utf-8")
|
||||||
w.Header().Set("Cache-Control", "public, max-age=3600")
|
w.Header().Set("Cache-Control", "public, s-maxage=86400, max-age=0")
|
||||||
|
|
||||||
w.Write([]byte(`<?xml version="1.0" encoding="UTF-8"?>
|
w.Write([]byte(`<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue