Maison > développement back-end > Golang > Golang Fiber c. La disposition du rendu n'applique pas les modèles corrects.

Golang Fiber c. La disposition du rendu n'applique pas les modèles corrects.

WBOY
Libérer: 2024-02-09 13:54:18
avant
1079 Les gens l'ont consulté

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

Golang Fiber est un framework Web hautes performances largement utilisé dans le développement du langage Go. Cependant, parfois lorsque vous utilisez Fiber pour restituer une mise en page, vous pouvez rencontrer des problèmes où le modèle n'est pas exécuté correctement. Cela peut être dû à un bug dans le code ou à un problème de configuration. Dans cet article, l'éditeur PHP Apple analysera ce problème en détail et vous proposera des solutions pour vous aider à surmonter ce défi. Que vous soyez un développeur débutant ou expérimenté, vous pouvez acquérir des connaissances et des compétences utiles grâce à cet article pour améliorer vos capacités de développement de Golang Fiber.

Contenu de la question

J'essaie d'utiliser une mise en page avec différents modèles,

├── main folder
   ├── cmd
        └── main.go
   ├── controllers
   ├── models
   ├── views
        └── partials
            └── layout.html
        └── index.html
        └── dashboard.html
        └── login.html
   └── public
        └── sample.png
Copier après la connexion

Dans mon layout.html j'ai

<!doctype html>
<html lang="en">
<head>
</head>
<body>
    <h1>loaded from layout</h1>
  {{ template . }}
</body>
</html>
Copier après la connexion

Dans mon dashboard.html

{{ define "dashboard" }}
    <h1>dashboard</h1>
{{ end }}
Copier après la connexion

Dans mon login.html

{{ define "login" }}
    <h1>login</h1>
{{ end }}
Copier après la connexion

Lorsque je restitue le tableau de bord via le contrôleur, il charge uniquement login.html et il obtient toujours le dernier fichier html

// controller

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

Dans le fichier principal, j'ai déjà indiqué où trouver la vue

//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)
        },
    })
Copier après la connexion

Une erreur s'est produite "Modèle : 'partiels/mise en page' est un modèle incomplet ou vide" Comment envoyer ou restituer le bon fichier HTML en utilisant une seule mise en page ?

aller à la version 1.19 cinquième édition 2 "github.com/go fibre/template/html"

Solution

J'ai trouvé la réponse, Nous devons utiliser {{embed}} au lieu du modèle, il contiendra alors le modèle correct que vous transmettez depuis le contrôleur

<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
    <h1>Loaded from Layout</h1>
  {{ embed  }}
</body>
</html>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal