首頁 > 後端開發 > Golang > Golang Fiber c.渲染佈局未執行正確的模板

Golang Fiber c.渲染佈局未執行正確的模板

WBOY
發布: 2024-02-09 13:54:18
轉載
1072 人瀏覽過

Golang Fiber c.渲染布局未执行正确的模板

Golang Fiber是一種高效能的網路框架,被廣泛應用於Go語言開發。然而,有時在使用Fiber渲染佈局時,可能會遇到模板未正確執行的問題。這可能是由於程式碼中存在錯誤或配置問題導致的。在本文中,php小編蘋果將為您詳細解析此問題,並提供解決方案,幫助您克服這項挑戰。無論您是初學者還是有經驗的開發者,都能從本文中獲得有用的知識和技巧,提升您在Golang Fiber開發中的能力。

問題內容

我正在嘗試將一種佈局與不同的模板結合使用,

├── 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 }}
登入後複製

當我透過控制器渲染儀表板時,它只會載入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/go fiber/template/html」

解決方法

找到答案了, 我們必須使用 {{embed}} 而不是模板,然後它將包含您從控制器傳遞的正確模板

<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
    <h1>Loaded from Layout</h1>
  {{ embed  }}
</body>
</html>
登入後複製

以上是Golang Fiber c.渲染佈局未執行正確的模板的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板