模板路径及后缀
- 定义后台的模板路径,可以用下面的代码。
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) // 传入页面的参数
}
- 模板中使用的方法了
-
urlpath
生成url连接 -
render
可以在模板中掉用其他的模板文件