Files
NetworkAuth/server/routes.go

49 lines
1.3 KiB
Go
Raw Normal View History

2025-10-27 23:12:15 +08:00
package server
import (
2026-03-18 21:51:17 +08:00
"NetworkAuth/web"
2025-10-27 23:12:15 +08:00
"io/fs"
"log"
"net/http"
"github.com/gin-gonic/gin"
)
// RegisterRoutes 聚合注册所有路由
2026-03-18 21:51:17 +08:00
func RegisterRoutes(r *gin.Engine) {
registerStaticRoutes(r)
registerFaviconRoute(r)
RegisterInstallRoutes(r)
RegisterDefaultRoutes(r)
RegisterAdminRoutes(r)
2025-10-27 23:12:15 +08:00
}
// registerStaticRoutes 注册静态资源路由
// 静态资源服务,将 /static/ 和 /assets/ 映射到嵌入的文件系统
2026-03-18 21:51:17 +08:00
func registerStaticRoutes(r *gin.Engine) {
2025-10-27 23:12:15 +08:00
if fsys, err := web.GetStaticFS(); err == nil {
// 为 /static/ 路径创建子文件系统
if staticSubFS, staticErr := fs.Sub(fsys, "static"); staticErr == nil {
2026-03-18 21:51:17 +08:00
r.StaticFS("/static", http.FS(staticSubFS))
2025-10-27 23:12:15 +08:00
} else {
log.Printf("创建静态资源子文件系统失败: %v", staticErr)
}
// 为 /assets/ 路径创建子文件系统
if assetsSubFS, assetsErr := fs.Sub(fsys, "assets"); assetsErr == nil {
2026-03-18 21:51:17 +08:00
r.StaticFS("/assets", http.FS(assetsSubFS))
2025-10-27 23:12:15 +08:00
} else {
log.Printf("创建资产资源子文件系统失败: %v", assetsErr)
}
} else {
log.Printf("初始化静态资源文件系统失败: %v", err)
}
}
// registerFaviconRoute 注册favicon路由
2026-03-18 21:51:17 +08:00
func registerFaviconRoute(r *gin.Engine) {
2025-10-27 23:12:15 +08:00
// 将 /favicon.ico 重定向到 /assets/favicon.svg
2026-03-18 21:51:17 +08:00
r.GET("/favicon.ico", func(c *gin.Context) {
2025-10-27 23:12:15 +08:00
c.Redirect(http.StatusMovedPermanently, "/assets/favicon.svg")
})
}