Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Serat Golang c. Susun atur rendering tidak menguatkuasakan templat yang betul

Serat Golang c. Susun atur rendering tidak menguatkuasakan templat yang betul

WBOY
WBOYke hadapan
2024-02-09 13:54:181037semak imbas

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

Golang Fiber ialah rangka kerja web berprestasi tinggi yang digunakan secara meluas dalam pembangunan bahasa Go. Walau bagaimanapun, kadangkala apabila menggunakan Fiber untuk membuat reka letak, anda mungkin menghadapi masalah apabila templat tidak dilaksanakan dengan betul. Ini mungkin disebabkan oleh pepijat dalam kod atau isu konfigurasi. Dalam artikel ini, editor PHP Apple akan menganalisis masalah ini secara terperinci dan menyediakan penyelesaian untuk membantu anda mengatasi cabaran ini. Sama ada anda seorang pemula atau pembangun yang berpengalaman, anda boleh mendapatkan pengetahuan dan kemahiran yang berguna daripada artikel ini untuk meningkatkan keupayaan anda dalam pembangunan Golang Fiber.

Kandungan soalan

Saya cuba menggunakan reka letak dengan templat yang berbeza,

├── main folder
   ├── cmd
        └── main.go
   ├── controllers
   ├── models
   ├── views
        └── partials
            └── layout.html
        └── index.html
        └── dashboard.html
        └── login.html
   └── public
        └── sample.png

Dalam layout.html saya saya ada

<!doctype html>
<html lang="en">
<head>
</head>
<body>
    <h1>loaded from layout</h1>
  {{ template . }}
</body>
</html>

Dalam dashboard.html

saya
{{ define "dashboard" }}
    <h1>dashboard</h1>
{{ end }}

Dalam login.html

saya
{{ define "login" }}
    <h1>login</h1>
{{ end }}

Apabila saya memaparkan papan pemuka melalui pengawal, ia hanya memuatkan login.html dan ia sentiasa mendapat fail html terakhir

// controller

func dashboard(c *fiber.ctx) error {
    return c.render("dashboard", fiber.map{
        "title": "login | selectify admin",
    }, "partials/layout")
}

Dalam fail utama saya sudah memberitahu di mana untuk mencari paparan

//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)
        },
    })

Ralat berlaku "Templat: 'separa/susun atur' ialah templat yang tidak lengkap atau kosong" Bagaimana untuk menghantar atau membuat fail html yang betul menggunakan satu susun atur?

go versi 1.19 edisi kelima 2 "github.com/go fiber/template/html"

Penyelesaian

Saya jumpa jawapannya, Kami perlu menggunakan {{embed}} dan bukannya templat, maka ia akan mengandungi templat yang betul yang anda hantar daripada pengawal

<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
    <h1>Loaded from Layout</h1>
  {{ embed  }}
</body>
</html>

Atas ialah kandungan terperinci Serat Golang c. Susun atur rendering tidak menguatkuasakan templat yang betul. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam