package router import ( "github.com/gin-gonic/gin" "go.uber.org/zap" "log" "os" "path/filepath" "sfbase/core" "sfbase/global" "strings" ) type server interface { ListenAndServe() error } func HttpServerRun() { r := InitRouter() if global.BaseConfig.HttpConfig.ServerPageRouter { /** -----注册后端页面路由,该段逻辑可放置在前端处理----- */ pageRouterRegister(r) initViews(r) /*------------------------------------*/ } //通过公共方法获取配置文件属性 不用定义结构体的方法 address := core.GetStringConf("base.http.http_port") readTimeOut := core.GetIntConf("base.http.read_timeout") writeTimeOut := core.GetIntConf("base.http.write_timeout") // s := initServer(address, readTimeOut, writeTimeOut, r) if err := s.ListenAndServe(); err != nil { global.Logger.Error("sf_base web 服务启动失败", zap.Any("error:", err)) } } func initViews(router *gin.Engine) { router.Static(core.GetStringConf("base.http.static_prefix"), core.GetStringConf("base.http.static_root")) //router.StaticFile("/favicon", config.SysConfig.App.Favicon) templateDir := core.GetStringConf("base.http.template_dir") if templateDir != "" { templateFiles := loadAllTemplates(templateDir) if len(templateFiles) > 0 { router.LoadHTMLFiles(templateFiles...) } router.Delims("{{", "}}") } } func loadAllTemplates(dir string) []string { templateFiles := make([]string, 0) filepath.Walk(dir, func(path string, info os.FileInfo, err error) error { if strings.HasSuffix(info.Name(), ".html") { log.Println("加载模板文件", path) if _, err := os.Stat(path); err != nil { log.Println(path, err.Error()) } templateFiles = append(templateFiles, path) } return nil }) return templateFiles }