Heim >Backend-Entwicklung >Golang >Golang Fiber c. Das Rendering-Layout erzwingt keine korrekten Vorlagen

Golang Fiber c. Das Rendering-Layout erzwingt keine korrekten Vorlagen

WBOY
WBOYnach vorne
2024-02-09 13:54:181080Durchsuche

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

Golang Fiber是一种高性能的Web框架,被广泛应用于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>

Das obige ist der detaillierte Inhalt vonGolang Fiber c. Das Rendering-Layout erzwingt keine korrekten Vorlagen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen