Golang Fiber是一種高效能的網路框架,被廣泛應用於Go語言開發。然而,有時在使用Fiber渲染佈局時,可能會遇到模板未正確執行的問題。這可能是由於程式碼中存在錯誤或配置問題導致的。在本文中,php小編蘋果將為您詳細解析此問題,並提供解決方案,幫助您克服這項挑戰。無論您是初學者還是有經驗的開發者,都能從本文中獲得有用的知識和技巧,提升您在Golang Fiber開發中的能力。
我正在嘗試將一種佈局與不同的模板結合使用,
├── main folder ├── cmd └── main.go ├── controllers ├── models ├── views └── partials └── layout.html └── index.html └── dashboard.html └── login.html └── public └── sample.png
在我的 layout.html
中,我有
<!doctype html> <html lang="en"> <head> </head> <body> <h1>loaded from layout</h1> {{ template . }} </body> </html>
在我的 dashboard.html
{{ define "dashboard" }} <h1>dashboard</h1> {{ end }}
在我的login.html
{{ define "login" }} <h1>login</h1> {{ end }}
當我透過控制器渲染儀表板時,它只會載入login.html,它總是取得最後一個html檔案
// controller func dashboard(c *fiber.ctx) error { return c.render("dashboard", fiber.map{ "title": "login | selectify admin", }, "partials/layout") }
在主文件中我已經告訴了在哪裡可以找到視圖
//main.go // create a new HTML engine template_engine := html.New( "./views", ".html", ) // create a new Fiber app app := fiber.New(fiber.Config{ Views: template_engine, // set the views engine ErrorHandler: func(c *fiber.Ctx, err error) error { return utils.HandleError(c, err) }, })
出現錯誤 “模板:“partials/layout”是不完整或空的模板” 如何使用一種佈局發送或渲染正確的 html 檔案?
go版本1.19 第五版 2 「github.com/go fiber/template/html」
找到答案了, 我們必須使用 {{embed}} 而不是模板,然後它將包含您從控制器傳遞的正確模板
<!DOCTYPE html> <html lang="en"> <head> </head> <body> <h1>Loaded from Layout</h1> {{ embed }} </body> </html>
以上是Golang Fiber c.渲染佈局未執行正確的模板的詳細內容。更多資訊請關注PHP中文網其他相關文章!