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.
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
Dans mon layout.html
j'ai
<!doctype html> <html lang="en"> <head> </head> <body> <h1>loaded from layout</h1> {{ template . }} </body> </html>
Dans mon dashboard.html
{{ define "dashboard" }} <h1>dashboard</h1> {{ end }}
Dans mon login.html
{{ define "login" }} <h1>login</h1> {{ end }}
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") }
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) }, })
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"
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>
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!