跳至主要内容
版本:v2.x

📝 模板

模板接口

Fiber 提供了一个 Views 接口来提供你自己的模板引擎

type Views interface {
Load() error
Render(io.Writer, string, interface{}, ...string) error
}

Views 接口包含一个 LoadRender 方法,Load 在应用程序初始化时由 Fiber 执行,以加载/解析模板。

// Pass engine to Fiber's Views Engine
app := fiber.New(fiber.Config{
Views: engine,
// Views Layout is the global layout for all template render until override on Render function.
ViewsLayout: "layouts/main"
})

Render 方法链接到 ctx.Render() 函数,该函数接受一个模板名称和绑定数据。如果在 Render 函数中未定义布局,它将使用全局布局。如果启用了 Fiber 配置选项 PassLocalsToViews,那么使用 ctx.Locals(key, value) 设置的所有局部变量都将传递给模板。

app.Get("/", func(c *fiber.Ctx) error {
return c.Render("index", fiber.Map{
"hello": "world",
});
})

引擎

Fiber 团队维护 模板 包,该包为多个模板引擎提供包装器

package main

import (
"log"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/template/html/v2"
)

func main() {
// Initialize standard Go html template engine
engine := html.New("./views", ".html")
// If you want other engine, just replace with following
// Create a new engine with django
// engine := django.New("./views", ".django")

app := fiber.New(fiber.Config{
Views: engine,
})
app.Get("/", func(c *fiber.Ctx) error {
// Render index template
return c.Render("index", fiber.Map{
"Title": "Hello, World!",
})
})

log.Fatal(app.Listen(":3000"))
}