From 23bacbbe41dfed363ee2aecbd0a48950fa645fa7 Mon Sep 17 00:00:00 2001 From: paku <paku@skyizwhite.dev> Date: Sat, 16 Nov 2024 14:02:31 +0900 Subject: [PATCH] Improve caching --- src/renderer.lisp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/renderer.lisp b/src/renderer.lisp index a6b9bd1..f0c9f26 100644 --- a/src/renderer.lisp +++ b/src/renderer.lisp @@ -8,6 +8,9 @@ (:local-nicknames (#:env #:hp/env))) (in-package #:hp/renderer) +(defun bust-cache (url) + (format nil "~a?~a" url #.(get-universal-time))) + (defcomp document (&key title description children) (hsx (html :lang "ja" @@ -16,20 +19,25 @@ (meta :name "viewport" :content "width=device-width, initial-scale=1") (link :rel "icon" :href "/favicon.ico") (link :rel "apple-touch-icon" :href "/favicon.ico") - (link :rel "stylesheet" :href (format nil "/dist.css?~a" #.(get-universal-time))) + (link :rel "stylesheet" :href (bust-cache "/dist.css")) (script :src "https://cdn.jsdelivr.net/npm/htmx.org@2.0.0/dist/htmx.min.js") (script :src "https://cdn.jsdelivr.net/npm/htmx-ext-head-support@2.0.0/head-support.min.js") + (script :src "https://cdn.jsdelivr.net/npm/htmx-ext-response-targets@2.0.0/response-targets.min.js") (script :src "https://cdn.jsdelivr.net/npm/alpinejs@3.14.0/dist/cdn.min.js" :defer t) (title (format nil "~@[~a - ~]skyizwhite.dev" title)) (meta :name "description" :content (or description "pakuの個人サイト"))) - (body :hx-ext "head-support" + (body :hx-ext "head-support, response-targets" :hx-target-404 "body" (main :class "container mx-auto" children))))) (defmethod jg:process-response ((app jg:app) result) (jg:set-response-header :content-type "text/html; charset=utf-8") + (when (env:dev-mode-p) + (jg:set-response-header :cache-control "no-store, no-cache, must-revalidate") + (jg:set-response-header :pragma "no-cache") + (jg:set-response-header :expires "0")) (call-next-method app (hsx:render-to-string (match result