我试着用一个布局和不同的模板,
├── 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 }}
当我通过控制器渲染 Jmeter 板时,它只加载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/gofiber/template/html“
1条答案
按热度按时间ctehm74n1#
已找到答案,我们必须使用{{embed}}而不是模板,然后它将包含您从控制器传递的正确模板