Go Fiber 한글 공식 문서
  • 🙇‍♀️안녕하세요
  • 🏠Home
    • 👋Welcome
    • 📁API
      • 📦Fiber
      • 🚀App
      • 🧠Ctx
      • 📋Constants
      • 🌎Client
      • 📃Log
      • 🧬Middleware
        • Adaptor
        • BasicAuth
        • Cache
        • Compress
        • CORS
        • CSRF
        • EarlyData
        • Encrypt Cookie
        • EnvVar
        • ETag
        • ExpVar
        • Favicon
        • FileSystem
        • Health Check
        • Helmet
        • Idempotency
        • Keyauth
        • Limiter
        • Logger
        • Monitor
        • Pprof
        • Proxy
        • Recover
        • Redirect
        • RequestID
        • Rewrite
        • Session
        • Skip
        • Timeout
    • 📁Guide
      • 🔌Routing
      • 🎭Grouping
      • 📝Templates
      • 🐛Error Handling
      • 🔎Validation
      • 🎣Hooks
      • ⚡Make Fiber Faster
    • 📁Extra
      • 🤔FAQ
      • 📊Benchmarks
  • 🧩Extra
    • 🧬Contrip
      • 👋Welcome
      • Casbin
      • Fgprof
      • Fiberi18n
      • Fibernewrelic
      • Fibersentry
      • Fiberzap
      • Fiberzerolog
      • JWT
      • LoadShed
      • Opafiber
      • Otelfiber
        • Example
      • Paseto
      • README
      • Swagger
      • Websocket
    • 📦Storage
      • 👋Welcome
      • ArangoDB
      • Azure Blob
      • Badger
      • Bbolt
      • Coherence
      • Couchbase
      • DynamoDB
      • Etcd
      • Memcache
      • Memory
      • Minio
      • MongoDB
      • MSSQL
      • MySQL
      • Nats
      • Pebble
      • Postgres
      • Redis
      • Ristretto
      • Rueidis
      • S3
      • ScyllaDb
      • SQLite3
    • 📃Template
      • 👋Welcome
      • Ace
      • Amber
      • Django
      • Handlebars
      • HTML
        • Golang Templates Cheatsheet
      • Jet
      • Mustache
      • Pug
      • Slim
Powered by GitBook
On this page
  • 템플릿 인터페이스
  • 엔진
  1. Home
  2. Guide

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",
  });
})

엔진

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"))
}
<!DOCTYPE html>
<body>
  <h1>{{.Title}}</h1>
</body>
</html>
PreviousGroupingNextError Handling

Last updated 1 year ago

Fiber 팀은 여러 템플릿 엔진에 대한 래퍼를 제공하는 패키지를 유지 관리합니다:

🏠
📁
📝
templates
ace
amber
django
handlebars
html
jet
mustache
pug
slim