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

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


咨詢
建站咨詢
