diff --git a/src/renderer.lisp b/src/renderer.lisp index 422436c..93372d4 100644 --- a/src/renderer.lisp +++ b/src/renderer.lisp @@ -17,9 +17,15 @@ (defmethod jingle:process-response ((app jingle:app) result) (set-response-header :content-type "text/html; charset=utf-8") (when (eq (request-method *request*) :get) - (set-response-header :cache-control (if (string= (website-env) "dev") - "private, no-store" - "public, max-age=60"))) + (set-response-header :cache-control (cond ((string= (website-env) "dev") + "private, no-store") + ((eq (context :cache) :static) + "public, max-age=60, s-maxage=604800") + ((eq (context :cache) :dynamic) + "public, max-age=60") + (t + "private, no-store")))) + (call-next-method app (render-to-string (hsx (html :lang "ja" diff --git a/src/routes/about.lisp b/src/routes/about.lisp index 5f74a4d..e2af4ad 100644 --- a/src/routes/about.lisp +++ b/src/routes/about.lisp @@ -19,5 +19,6 @@ (defun handle-get (params) (declare (ignore params)) + (setf (context :cache) :dynamic) (setf (context :metadata) *metadata*) (~page)) diff --git a/src/routes/blog.lisp b/src/routes/blog.lisp index 307009d..ce86076 100644 --- a/src/routes/blog.lisp +++ b/src/routes/blog.lisp @@ -14,5 +14,6 @@ (defun handle-get (params) (declare (ignore params)) + (setf (context :cache) :dynamic) (setf (context :metadata) *metadata*) (~page)) diff --git a/src/routes/index.lisp b/src/routes/index.lisp index 407a0f8..8eeb5dd 100644 --- a/src/routes/index.lisp +++ b/src/routes/index.lisp @@ -1,6 +1,7 @@ (defpackage #:website/routes/index (:use #:cl - #:hsx) + #:hsx + #:jingle) (:export #:handle-get #:handle-head)) (in-package #:website/routes/index) @@ -43,6 +44,7 @@ (defun handle-get (params) (declare (ignore params)) + (setf (context :cache) :static) (~page)) ; for health check diff --git a/src/routes/not-found.lisp b/src/routes/not-found.lisp index 9e8db35..9e05d65 100644 --- a/src/routes/not-found.lisp +++ b/src/routes/not-found.lisp @@ -19,5 +19,6 @@ "Back to TOP")))) (defun handle-not-found () + (setf (context :cache) :dynamic) (setf (context :metadata) *metadata*) (~page)) diff --git a/src/routes/work.lisp b/src/routes/work.lisp index 2a62a27..663bc80 100644 --- a/src/routes/work.lisp +++ b/src/routes/work.lisp @@ -19,5 +19,6 @@ (defun handle-get (params) (declare (ignore params)) + (setf (context :cache) :dynamic) (setf (context :metadata) *metadata*) (~page))