diff --git a/VERSION b/VERSION
index 62cc622..3e23e56 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.2.53
+1.2.54
diff --git a/cmd/edgeguard-api/main.go b/cmd/edgeguard-api/main.go
index f692b3c..9827613 100644
--- a/cmd/edgeguard-api/main.go
+++ b/cmd/edgeguard-api/main.go
@@ -586,10 +586,18 @@ func mountUI(r *gin.Engine) {
return
}
if info, err := os.Stat(full); err == nil && !info.IsDir() {
+ // Vite hashed assets are immutable — cache them forever.
+ // index.html must never be cached so updates take effect.
+ if strings.HasPrefix(clean, "/assets/") {
+ c.Header("Cache-Control", "public, max-age=31536000, immutable")
+ } else {
+ c.Header("Cache-Control", "no-cache, no-store, must-revalidate")
+ }
c.File(full)
return
}
// SPA fallback — React Router renders the right page.
+ c.Header("Cache-Control", "no-cache, no-store, must-revalidate")
c.File(indexPath)
})
}
diff --git a/management-ui/src/App.tsx b/management-ui/src/App.tsx
index cad1378..c7f8930 100644
--- a/management-ui/src/App.tsx
+++ b/management-ui/src/App.tsx
@@ -68,8 +68,8 @@ const antdTheme = {
itemHoverColor: '#0F172A',
itemSelectedColor: '#0EA5E9',
inkBarColor: '#0EA5E9',
+ cardBg: '#F1F5F9',
titleFontSize: 13,
- horizontalItemPadding: '10px 18px',
},
},
}
diff --git a/management-ui/src/pages/Firewall/index.tsx b/management-ui/src/pages/Firewall/index.tsx
index 8b9b484..7cb5c9b 100644
--- a/management-ui/src/pages/Firewall/index.tsx
+++ b/management-ui/src/pages/Firewall/index.tsx
@@ -125,7 +125,7 @@ export default function FirewallPage() {
)}
/>
-
+
)
}