首页 新闻 会员 周边 捐助

iris更新后StaticWeb()函数和iris.WithoutVersionChecker操作报错

0
悬赏园豆:5 [待解决问题]
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)

错误提示如下图:


请问这个需要怎么解决,谢谢

码道功程的主页 码道功程 | 初学一级 | 园豆:199
提问于:2021-06-08 20:08

尴尬,自问自答吧,写成:app.HandleDir("/aa",iris.Dir("./xx/xx"))的格式即可

码道功程 3年前
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册