Golang Fiber是一种高性能的Web框架,被广泛应用于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中文网其他相关文章!