From a4f99cb6e1df6b391b4defa1b03ab68451b1b82b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dalibor=20Markovi=C4=87?= Date: Sat, 13 Jun 2026 10:45:23 +0200 Subject: [PATCH] fix(cache): HTML stranice no-cache da nova verzija odmah stigne do korisnika MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit HTML nije imao Cache-Control, pa je browser servirao staru keširanu stranicu sa starim AssetV tokenom i posle deploya — stari CSS/JS. Dodato no-cache na renderujTemplate i renderujStandalone: browser revalidira HTML, dobija svež AssetV token koji povlači svež CSS/JS. Statika ostaje immutable + ?v=verzija. --- internal/handler/kes.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/internal/handler/kes.go b/internal/handler/kes.go index b346ea5..739ab33 100644 --- a/internal/handler/kes.go +++ b/internal/handler/kes.go @@ -85,6 +85,10 @@ func KreirajKes(fsys fs.FS) (map[string]*template.Template, error) { // renderujTemplate renderuje šablon sa base layoutom // U produkciji koristi keš; u razvoju parsuje svaki put (hot reload) func (h *Handler) renderujTemplate(w http.ResponseWriter, ime string, podaci any) { + // HTML se ne kešira: browser uvek revalidira pa posle nove verzije (npr. Docker + // deploy) dobije svežu stranicu sa novim AssetV tokenom, koji onda povlači svež + // CSS/JS. Statika ostaje immutable (URL nosi ?v=verzija). + w.Header().Set("Cache-Control", "no-cache") var tmpl *template.Template if h.Templates != nil { @@ -115,6 +119,8 @@ func (h *Handler) renderujTemplate(w http.ResponseWriter, ime string, podaci any // renderujStandalone renderuje šablon bez base layouta (prijava, setup, itd.) func (h *Handler) renderujStandalone(w http.ResponseWriter, ime string, podaci any) { + // vidi renderujTemplate: HTML se ne kešira da nova verzija odmah stigne do korisnika + w.Header().Set("Cache-Control", "no-cache") var tmpl *template.Template if h.Templates != nil {