From 1303b3538735b31abdd8bdc9af6e7a3dcd885a5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dalibor=20Markovi=C4=87?= Date: Fri, 19 Jun 2026 01:51:29 +0200 Subject: [PATCH] =?UTF-8?q?Demo=20mod:=20embed=20fajlovi,=20ke=C5=A1=20?= =?UTF-8?q?=C5=A1ablona=20i=20immutable=20statika=20kao=20u=20produkciji?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit NTECH_ENV=demo je tretiran isto kao production za sve što se tiče fajl sistema — embed umesto diska za CSS/JS/šablone, keš šablona pri pokretanju, immutable Cache-Control za statičke fajlove. --- cmd/ntech/main.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/cmd/ntech/main.go b/cmd/ntech/main.go index 95b4e14..0592668 100644 --- a/cmd/ntech/main.go +++ b/cmd/ntech/main.go @@ -75,9 +75,9 @@ func main() { if _, err := os.Stat("migrations"); err == nil { migrFS = os.DirFS(".") } - // staticFS je rootovan na "web/static" — u produkciji embed, u razvoju disk + // staticFS je rootovan na "web/static" — u produkciji i demo modu embed, u razvoju disk var staticFS fs.FS - if os.Getenv("NTECH_ENV") == "production" { + if ntechEnv := os.Getenv("NTECH_ENV"); ntechEnv == "production" || ntechEnv == "demo" { staticFS, _ = fs.Sub(assets.StaticFS, "web/static") } else { staticFS = os.DirFS("web/static") @@ -158,7 +158,7 @@ func main() { // čuva odabrani FS (disk ili embed) za hot-reload u razvoju i za keš u produkciji h.TemplatesFS = templFS - if os.Getenv("NTECH_ENV") == "production" { + if ntechEnv := os.Getenv("NTECH_ENV"); ntechEnv == "production" || ntechEnv == "demo" { kes, err := handler.KreirajKes(templFS) if err != nil { slog.Error("Greška pri kreiranju keša šablona", "error", err) @@ -219,7 +219,8 @@ func main() { // ostali statični fajlovi: disk ako postoji web/static, inače embed. // U produkciji dug immutable keš (URL nosi ?v=verzija za cache-busting pri novom buildu); // u razvoju bez keša, da izmene CSS/JS odmah budu vidljive bez ručnog osvežavanja. - produkcija := os.Getenv("NTECH_ENV") == "production" + ntechEnvStr := os.Getenv("NTECH_ENV") + produkcija := ntechEnvStr == "production" || ntechEnvStr == "demo" r.Handle("/static/*", http.StripPrefix("/static/", http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { if produkcija {