package main
import (
"Product/common"
"context"
"github.com/kataras/iris"
"github.com/kataras/iris/mvc"
"Product/fronted/web/controllers"
"Product/repositories"
"Product/services"
"github.com/kataras/iris/sessions"
"time"
)
func main() {
//1.创建iris 实例
app := iris.New()
//2.设置错误模式,在mvc模式下提示错误
app.Logger().SetLevel("debug")
//3.注册模板
tmplate := iris.HTML("./fronted/web/views", ".html").Layout("shared/layout.html").Reload(true)
app.RegisterView(tmplate)
//4.设置模板
app.HandleDir("/public", "./fronted/web/public")
//访问生成好的html静态文件
app.StaticWeb("/html", "./fronted/web/htmlProductShow")
//出现异常跳转到指定页面
app.OnAnyErrorCode(func(ctx iris.Context) {
ctx.ViewData("message", ctx.Values().GetStringDefault("message", "访问的页面出错!"))
ctx.ViewLayout("")
ctx.View("shared/error.html")
})
//连接数据库
db, err := common.NewMysqlConn()
if err != nil {
}
sess := sessions.New(sessions.Config{
Cookie: "AdminCookie",
Expires: 600 * time.Minute,//过期时间
})
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
user := repositories.NewUserRepository("user", db)
userService := services.NewService(user)
userPro := mvc.New(app.Party("/user"))
userPro.Register(userService, ctx, sess.Start)
userPro.Handle(new(controllers.UserController))
app.Run(
iris.Addr("0.0.0.0:8082"),
iris.WithoutVersionChecker,
iris.WithoutServerError(iris.ErrServerClosed),
iris.WithOptimizations,
)
}
之前从网上看了好多回答,说iris.New().StaticWeb()函数可以用iris.New().HandleDir()函数代替,但是iris.New().HandleDir()函数需要传入三个函数,如果传入两个函数会报错,如下图所示,它的原型是:HandleDir(requestPath string, fs http.FileSystem, opts ...DirOptions)
。
错误提示如下图:
请问这个需要怎么解决,谢谢
尴尬,自问自答吧,写成:app.HandleDir("/aa",iris.Dir("./xx/xx"))的格式即可
– 码道功程 3年前