📝Templates
템플릿 인터페이스
Fiber는 사용자 정의 템플릿 엔진을 제공하기 위해 Views 인터페이스를 제공합니다:
type Views interface {
Load() error
Render(io.Writer, string, interface{}, ...string) error
}
Views
인터페이스에는 Load
와 Render
메서드가 포함되어 있습니다. 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 팀은 여러 템플릿 엔진에 대한 래퍼를 제공하는 templates 패키지를 유지 관리합니다:
package main
import (
"log"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/template/html/v2"
)
func main() {
// 표준 Go html 템플릿 엔진 초기화
engine := html.New("./views", ".html")
// 다른 엔진을 원하는 경우 다음과 같이 교체하면 됩니다
// django로 새 엔진 생성
// engine := django.New("./views", ".django")
app := fiber.New(fiber.Config{
Views: engine,
})
app.Get("/", func(c *fiber.Ctx) error {
// index 템플릿 렌더링
return c.Render("index", fiber.Map{
"Title": "Hello, World!",
})
})
log.Fatal(app.Listen(":3000"))
}
Last updated