go iris框架 模板配置及使用

模板路径及后缀

  • 定义后台的模板路径,可以用下面的代码。
iris.HTML("./views/admin", ".html")
  • 设置每次请求时重新构建模板

开发的时候每次修改模板都得启动应用,这个太不人性化了。
所幸iris提供每次请求可以重新构建模板。它是基于html解析引擎的。

iris.HTML("./views/admin", ".html").Reload(true)      // <--- 设置为 True,以便在每次请求时重新构建模板
  • 设置模板中的定界符

我在开发中遇到了一个问题,我前端用的是layui来开发后台界面,发现它们的定界符有冲突,都是{{}},这就有点难过了
想着将layui的定界符修改一下,结果layui的table代码中的定界符是写死的。所以我只能去修改iris框架的定界符了

iris.HTML("./views/admin", ".html").Delims("<$", "$>") // 重新设置定界符,和layui冲突了

<$和$> 这个可以自己定义。

  • 静态资源目录设置
    静态资源一般都是css,js,image等资源,模板中要引用,还是要设置下目录。
app.StaticWeb("static", "./static/")
  • 完整代码
app := iris.New()
TPL = iris.HTML("./views/admin", ".html").
        Reload(true).      // <--- 设置为 True,以便在每次请求时重新构建模板
        Delims("<$", "$>") // 重新设置定界符,和layui重复了
// 加载视图模板地址
app.RegisterView(TPL)
app.StaticWeb("static", "./static/")
  • 加载视图

我一般在控制器中加载视图:

// @title 添加修改任务页面
func (c *TaskController) EditTaskPage(taskId string) mvc.Result {
    return mvc.View{
        Name: "task_edit.html",                                   // 你的模板文件
        Data: map[string]interface{}{"taskId": taskId}, // 传入页面的参数
    }
}

还有一种加载视图的方法:

// @title 添加修改任务页面
func (c *TaskController) EditTaskPage(ctx iris.Context){
    taskId := ctx.PostValue("TaskId")
    ctx.View("task_edit.html")         // 你的模板文件
    ctx.ViewData("taskId", taskId)   // 传入页面的参数
}
  • 模板中使用的方法了
  1. urlpath 生成url连接
  2. render 可以在模板中掉用其他的模板文件
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。