新聞中心
視圖組件是?GOFrame?框架核心的組件之一,當(dāng)然也支持非常方便的配置管理功能。

站在用戶的角度思考問題,與客戶深入溝通,找到萬源網(wǎng)站設(shè)計(jì)與萬源網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋萬源地區(qū)。
配置對(duì)象
配置對(duì)象定義: https://pkg.go.dev/github.com/gogf/gf/v2/os/gview#Config
配置文件
視圖組件支持配置文件,當(dāng)使用?g.View?(單例名稱)獲取?View?單例對(duì)象時(shí),將會(huì)自動(dòng)通過默認(rèn)的配置管理對(duì)象獲取對(duì)應(yīng)的?View?配置。默認(rèn)情況下會(huì)讀取?viewer.單例名稱?配置項(xiàng),當(dāng)該配置項(xiàng)不存在時(shí),將會(huì)讀取?viewer?配置項(xiàng)。
完整配置文件配置項(xiàng)及說明如下,其中配置項(xiàng)名稱不區(qū)分大小寫:
[viewer]
Paths = ["/var/www/template"] # 模板文件搜索目錄路徑,建議使用絕對(duì)路徑。默認(rèn)為當(dāng)前程序工作路徑
DefaultFile = "index.html" # 默認(rèn)解析的模板引擎文件。默認(rèn)為"index.html"
Delimiters = ["${", "}"] # 模板引擎變量分隔符號(hào)。默認(rèn)為 ["{{", "}}"]
AutoEncode = false # 是否默認(rèn)對(duì)變量?jī)?nèi)容進(jìn)行XSS編碼。默認(rèn)為false
[viewer.Data] # 自定義的全局Key-Value鍵值對(duì),將在模板解析中可被直接使用到
Key1 = "Value1"
Key2 = "Value2"示例1,默認(rèn)配置項(xiàng)
[viewer]
paths = ["template", "/var/www/template"]
defaultFile = "index.html"
delimiters = ["${", "}"]
[viewer.data]
name = "gf"
version = "1.10.0"隨后可以使用?g.View()?獲取默認(rèn)的單例對(duì)象時(shí)自動(dòng)獲取并設(shè)置該配置。
示例2,多個(gè)配置項(xiàng)
多個(gè)?View?對(duì)象的配置示例:
[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 = ["#{", "}"]我們可以通過單例對(duì)象名稱獲取對(duì)應(yīng)配置的?View?單例對(duì)象:
// 對(duì)應(yīng) viewer.view1 配置項(xiàng)
v1 := g.View("view1")
// 對(duì)應(yīng) viewer.view2 配置項(xiàng)
v2 := g.View("view2")
// 對(duì)應(yīng)默認(rèn)配置項(xiàng) viewer
v3 := g.View("none")
// 對(duì)應(yīng)默認(rèn)配置項(xiàng) viewer
v4 := g.View()配置方法
方法列表: https://pkg.go.dev/github.com/gogf/gf/v2/os/gview
簡(jiǎn)要說明:
- 可以通過?
SetConfig?及?SetConfigWithMap?來設(shè)置。 - 也可以使用?
View?對(duì)象的?Set*?方法進(jìn)行特定配置的設(shè)置。 - 主要注意的是,配置項(xiàng)在?
View?對(duì)象執(zhí)行視圖解析之前設(shè)置,避免并發(fā)安全問題。
SetConfigWithMap方法
我們可以使用?SetConfigWithMap?方法通過?Key-Value?鍵值對(duì)來設(shè)置/修改?View?的特定配置,其余的配置使用默認(rèn)配置即可。其中?Key?的名稱即是?Config?這個(gè)?struct?中的屬性名稱,并且不區(qū)分大小寫,單詞間也支持使用?-?/?_?/空格符號(hào)連接。
簡(jiǎn)單示例:
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?表示默認(rèn)解析的模板文件,鍵名也可以使用?defaultFile?, ?default-File?, ?default_file?, ?default file?,其他配置屬性以此類推。
注意事項(xiàng)
經(jīng)常有小伙伴問,為什么我的模板解析沒有生效?為什么頁面上直接將我寫的標(biāo)簽原模原樣顯示出來了?
這個(gè)時(shí)候請(qǐng)檢查你的配置文件中是否有設(shè)置模板標(biāo)簽,常見的是?delimiters?設(shè)置為了?["${", "}"]?,但是模板中使用的是?["{{", "}}"]?。
標(biāo)題名稱:創(chuàng)新互聯(lián)GoFrame教程:GoFrame 模板引擎-模板配置
網(wǎng)站地址:http://www.5511xx.com/article/djhpohh.html


咨詢
建站咨詢
