GoFrame 视图组件配置

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 对象提供了多种配置方法:

  • SetConfigSetConfigWithMap 用于设置配置
  • 各种 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

常见问题

模板解析未生效?

如果模板标签直接显示在页面上,请检查:

  1. 配置文件中的 delimiters 设置(如 ["${", "}"])是否与模板中使用的标签(如 ["{{", "}}"])匹配
  2. 确保配置已在模板解析前完成设置

更多信息

完整方法列表请参考:gview Documentation

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老大白菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值