Maison >développement back-end >Golang >Comment utiliser les fichiers de modèle de base dans le HTML/modèle de Go ?

Comment utiliser les fichiers de modèle de base dans le HTML/modèle de Go ?

DDD
DDDoriginal
2024-11-07 11:12:031044parcourir

How Do I Use Base Template Files in Go's HTML/Template?

Utilisation des fichiers de modèle de base dans le modèle HTML/Go de Go

Dans le développement Web, l'utilisation de modèles de mise en page de base permet de maintenir la cohérence sur plusieurs pages. Comprenons comment utiliser cette technique dans le HTML/Template de Go.

Par exemple, disons que nous avons trois fichiers :

base.html : Le fichier de mise en page de base

<!DOCTYPE html>
<html lang="en">
<body>

header...

{{template "content" .}}

footer...

</body>
</html>

page1.html : Un modèle de page pour "/page1"

{{define "content"}}
<div>
    <h1>Page1</h1>
</div>
{{end}}
{{template "base.html"}}

page2.html : Un modèle de page pour " /page2"

{{define "content"}}
<div>
    <h1>Page2</h1>
</div>
{{end}}
{{template "base.html"}}

Le problème est que "/page1" et "/page2" utilisent actuellement le même fichier modèle, "page2.html."

Pour utiliser le " base.html", vous devez analyser les modèles "contenu" et "base" ensemble. Ceci est réalisé à l'aide de ParseFiles et ExecuteTemplate.

base.html (mis à jour) :

{{define "base"}}
<!DOCTYPE html>
<html lang="en">
<body>

header...

{{template "content" .}}

footer...

</body>
</html>
{{end}}

page1.html (mis à jour) :

{{define "content"}}
I'm page 1
{{end}}

page2.html (Mise à jour) :

{{define "content"}}
I'm page 2
{{end}}

Utilisation :

tmpl, err := template.New("").ParseFiles("page1.html", "base.html")
// handle error
err = tmpl.ExecuteTemplate(w, "base", yourContext)

Cela rendra le contenu approprié dans le modèle de mise en page de base. Par exemple, lors du rendu de "/page1", le contenu "Je suis la page 1" sera incorporé dans la section {{template "content. ."}} du modèle de base.

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!

Déclaration:
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