package main import ( "embed" "io/fs" "net/http" ) //go:embed web/* var webRootFS embed.FS type WebUI struct { fs fs.FS addr string mux *http.ServeMux } func NewWebUI(addr string) (*WebUI, error) { sub, err := fs.Sub(webRootFS, "web") if err != nil { return nil, err } mux := http.NewServeMux() fs := http.FileServer(http.FS(sub)) mux.Handle("/static/css/", fs) /////////////// 页面样式 mux.Handle("/static/js/", fs) /////////////// 页面脚本 mux.HandleFunc("/login", loginHandler) // 登录接口 mux.HandleFunc("/logout", logoutHandler) // 注销接口 mux.HandleFunc("/getIMEI", getIMEIHandler) return &WebUI{fs: sub, addr: addr, mux: mux}, nil } func (ui *WebUI) Start() error { StartSessionCleaner() // session过期自动回收 ui.mux.HandleFunc("/", ui.rootHandler) return http.ListenAndServe(ui.addr, ui.mux) }