GoFrame 视图组件配置
视图组件是 GoFrame 框架的核心组件之一,提供了灵活的配置管理功能。本文档详细介绍视图组件的配置方法和使用方式。
配置对象
视图配置对象的详细定义请参考:Config Definition
配置文件
当使用 g.View(单例名称)
获取 View 单例对象时,系统会自动通过默认配置管理对象获取相应配置:
- 优先读取
viewer.单例名称
配置项 - 如不存在,则读取
viewer
配置项
配置项说明
[viewer]
Paths = ["/var/www/template"] # 模板文件搜索目录路径,建议使用绝对路径
DefaultFile = "index.html" # 默认解析的模板引擎文件
Delimiters = ["${", "}"] # 模板引擎变量分隔符号
AutoEncode = false # 是否默认对变量内容进行XSS编码
[viewer.Data] # 自定义的全局Key-Value键值对
Key1 = "Value1"
Key2 = "Value2"
配置示例
1. 默认配置
[viewer]
paths = ["template", "/var/www/template"]
defaultFile = "index.html"
delimiters = ["${", "}"]
[viewer.data]
name = "gf"
version = "1.10.0"
使用 g.View()
可获取使用此配置的默认单例对象。
2. 多视图配置
[viewer]
paths = ["template", "/var/www/template"]
defaultFile = "index.html"
delimiters = ["${", "}"]
[viewer.data]
name = "gf"
version = "1.10.0"
[viewer.view1]
defaultFile = "layout.html"
delimiters = ["${", "}"]
[viewer.view2]
defaultFile = "main.html"
delimiters = ["#{", "}"]
获取不同配置的视图对象:
v1 := g.View("view1") // 使用 viewer.view1 配置
v2 := g.View("view2") // 使用 viewer.view2 配置
v3 := g.View("none") // 使用默认 viewer 配置
v4 := g.View() // 使用默认 viewer 配置
配置方法
通过代码配置
View 对象提供了多种配置方法:
SetConfig
和SetConfigWithMap
用于设置配置- 各种
Set*
方法用于设置特定配置项
重要:请确保在视图解析之前完成配置设置,以避免并发安全问题。
SetConfigWithMap 示例
package main
import (
"context"
"fmt"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gview"
)
func main() {
view := gview.New()
view.SetConfigWithMap(g.Map{
"Paths": []string{"template"},
"DefaultFile": "index.html",
"Delimiters": []string{"${", "}"},
"Data": g.Map{
"name": "gf",
"version": "1.10.0",
},
})
result, err := view.ParseContent(context.TODO(), "hello ${.name}, version: ${.version}")
if err != nil {
panic(err)
}
fmt.Println(result)
}
配置键名支持多种格式:
DefaultFile
defaultFile
default-File
default_file
default file
常见问题
模板解析未生效?
如果模板标签直接显示在页面上,请检查:
- 配置文件中的
delimiters
设置(如["${", "}"]
)是否与模板中使用的标签(如["{{", "}}"]
)匹配 - 确保配置已在模板解析前完成设置
更多信息
完整方法列表请参考:gview Documentation