Demo mod: embed fajlovi, keš šablona i immutable statika kao u produkciji
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.
This commit is contained in:
+5
-4
@@ -75,9 +75,9 @@ func main() {
|
|||||||
if _, err := os.Stat("migrations"); err == nil {
|
if _, err := os.Stat("migrations"); err == nil {
|
||||||
migrFS = os.DirFS(".")
|
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
|
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")
|
staticFS, _ = fs.Sub(assets.StaticFS, "web/static")
|
||||||
} else {
|
} else {
|
||||||
staticFS = os.DirFS("web/static")
|
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
|
// čuva odabrani FS (disk ili embed) za hot-reload u razvoju i za keš u produkciji
|
||||||
h.TemplatesFS = templFS
|
h.TemplatesFS = templFS
|
||||||
|
|
||||||
if os.Getenv("NTECH_ENV") == "production" {
|
if ntechEnv := os.Getenv("NTECH_ENV"); ntechEnv == "production" || ntechEnv == "demo" {
|
||||||
kes, err := handler.KreirajKes(templFS)
|
kes, err := handler.KreirajKes(templFS)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
slog.Error("Greška pri kreiranju keša šablona", "error", err)
|
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.
|
// 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 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.
|
// 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/",
|
r.Handle("/static/*", http.StripPrefix("/static/",
|
||||||
http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
|
http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
|
||||||
if produkcija {
|
if produkcija {
|
||||||
|
|||||||
Reference in New Issue
Block a user