Maison > développement back-end > Golang > Pourquoi les commentaires HTML disparaissent-ils après la mise à jour vers une version plus récente ?

Pourquoi les commentaires HTML disparaissent-ils après la mise à jour vers une version plus récente ?

Linda Hamilton
Libérer: 2024-11-03 00:26:29
original
768 Les gens l'ont consulté

Why do HTML comments disappear after updating Go to a newer version?

Go : résolution des problèmes de rendu des commentaires HTML

Lorsque vous travaillez avec des applications Web Go, vous pouvez rencontrer un problème où les commentaires HTML disparaissent de manière inattendue du page rendue. Cette anomalie est couramment observée après la mise à jour de Go vers une version plus récente.

Pour résoudre ce problème, il est nécessaire de comprendre le mécanisme de gestion des modèles dans Go. Le package html/template introduit un type spécial appelé template.HTML. Les valeurs de ce type ne sont pas échappées lors du rendu du modèle.

La solution réside dans le marquage de vos commentaires HTML comme template.HTML. Une méthode efficace consiste à enregistrer une fonction personnalisée dans votre modèle. Cette fonction doit accepter un argument de chaîne et le renvoyer sous la forme template.HTML. En transmettant vos commentaires HTML à cette fonction, vous vous assurez qu'ils seront conservés dans la sortie.

Voici un exemple :

<code class="go">func main() {
    t := template.Must(template.New("").Funcs(template.FuncMap{
        "safe": func(s string) template.HTML { return template.HTML(s) },
    }).Parse(src))
    t.Execute(os.Stdout, nil)
}

const src = `<html><body>
{{safe "<!-- This is a comment -->"}}
<div>Some <b>HTML</b> content</div>
</body></html>`</code>
Copier après la connexion

En enregistrant la fonction safe(), vous pouvez transformer vos commentaires HTML en actions de modèle qui appellent cette fonction et transmettent les commentaires d'origine. Cela garantit leur conservation dans la sortie.

Vous pouvez également, si nécessaire, utiliser la syntaxe suivante :

<code class="go">{{"<!-- Some HTML comment -->" | safe}}</code>
Copier après la connexion

Lorsque vous traitez des commentaires HTML contenant des guillemets, n'oubliez pas de les échapper en conséquence :

<code class="go">{{safe "<!-- Some \"HTML\" comment -->"}}</code>
Copier après la connexion

Enfin, soyez prudent lorsque vous utilisez des commentaires HTML conditionnels. Leur utilisation peut perturber l'échappement contextuel implémenté dans le package html/template. Reportez-vous à la documentation pour plus de détails.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal