diff --git a/main.go b/main.go index 8d92865..bdc4530 100644 --- a/main.go +++ b/main.go @@ -24,15 +24,13 @@ func main() { } // 加载模板 - tmpl, err := template.ParseFiles( + tmpl := template.New("layout.html") + tmpl = template.Must(tmpl.ParseFiles( "/app/web/templates/admin/layout.html", "/app/web/templates/admin/login.html", "/app/web/templates/admin/metrics.html", "/app/web/templates/admin/config.html", - ) - if err != nil { - log.Fatal("Error parsing templates:", err) - } + )) // 更新常量配置 constants.UpdateFromConfig(cfg) @@ -74,16 +72,22 @@ func main() { switch r.URL.Path { case "/admin/login": - log.Printf("[Debug] 提供登录页面,文件路径: /app/web/templates/admin/login.html") + log.Printf("[Debug] 提供登录页面") w.Header().Set("Content-Type", "text/html; charset=utf-8") - if err := tmpl.ExecuteTemplate(w, "login.html", nil); err != nil { + if err := tmpl.ExecuteTemplate(w, "layout.html", map[string]interface{}{ + "Title": "管理员登录", + "Content": "login.html", + }); err != nil { log.Printf("[Error] 渲染登录页面失败: %v", err) http.Error(w, "Internal Server Error", http.StatusInternalServerError) } case "/admin/metrics": proxyHandler.AuthMiddleware(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "text/html; charset=utf-8") - if err := tmpl.ExecuteTemplate(w, "metrics.html", nil); err != nil { + if err := tmpl.ExecuteTemplate(w, "layout.html", map[string]interface{}{ + "Title": "监控面板", + "Content": "metrics.html", + }); err != nil { log.Printf("[Error] 渲染监控页面失败: %v", err) http.Error(w, "Internal Server Error", http.StatusInternalServerError) } @@ -91,7 +95,10 @@ func main() { case "/admin/config": proxyHandler.AuthMiddleware(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "text/html; charset=utf-8") - if err := tmpl.ExecuteTemplate(w, "config.html", nil); err != nil { + if err := tmpl.ExecuteTemplate(w, "layout.html", map[string]interface{}{ + "Title": "配置管理", + "Content": "config.html", + }); err != nil { log.Printf("[Error] 渲染配置页面失败: %v", err) http.Error(w, "Internal Server Error", http.StatusInternalServerError) } @@ -141,9 +148,9 @@ func main() { log.Printf("[Debug] 收到请求: %s %s", r.Method, r.URL.Path) // 处理静态文件 - if strings.HasPrefix(r.URL.Path, "/web/static/") { + if strings.HasPrefix(r.URL.Path, "/admin/static/") { log.Printf("[Debug] 处理静态文件: %s", r.URL.Path) - http.StripPrefix("/web/static/", http.FileServer(http.Dir("/app/web/static"))).ServeHTTP(w, r) + http.StripPrefix("/admin/static/", http.FileServer(http.Dir("/app/web/static"))).ServeHTTP(w, r) return } diff --git a/web/templates/admin/layout.html b/web/templates/admin/layout.html index b401c94..ddbff28 100644 --- a/web/templates/admin/layout.html +++ b/web/templates/admin/layout.html @@ -3,7 +3,7 @@
-