Skip to main content
Version: v1.x

📝 Templates

Template interfaces

Fiber provides a Views interface to provide your own template engine:

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

Views interface contains a Load and Render method, Load is executed by Fiber on app initialization to load/parse the templates.

// Pass engine to Fiber's Views Engine
app := fiber.New(&fiber.Settings{
Views: engine,
})

The Render method is linked to the ctx.Render() function that accepts a template name and binding data.

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

Engines

Fiber team maintains templates package that provides wrappers for multiple template engines:

package main

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

func main() {
// Initialize standard Go html template engine
engine := html.New("./views", ".html")

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

app.Listen(3000)
}