Maison > développement back-end > Golang > le corps du texte

Pourquoi mes commentaires Go HTML disparaissent-ils dans les pages rendues ?

Patricia Arquette
Libérer: 2024-11-02 05:09:03
original
765 Les gens l'ont consulté

Why Are My Go HTML Comments Disappearing in Rendered Pages?

Les commentaires HTML Go ne sont pas rendus : une solution avec template.HTML

Dans une application web Go, la disparition des commentaires HTML dans les pages rendues peut être un problème frustrant. Ceci est particulièrement problématique pour le code KnockoutJS qui repose sur une syntaxe de flux de contrôle sans conteneur.

La raison derrière ce comportement est que par défaut, le package html/template de Go échappe au contenu HTML pour des raisons de sécurité. Cela signifie que les commentaires HTML, qui sont entourés de , sont rendus sous forme de texte échappé au lieu d'être affichés sous forme de commentaires.

Pour résoudre ce problème, le package html/template fournit un type spécial appelé modèle.HTML. Les valeurs de ce type ne sont pas échappées lors du rendu.

Approche de fonction personnalisée

Une solution efficace consiste à créer une fonction personnalisée pour vos modèles qui enveloppe vos commentaires HTML dans un modèle. .HTML. Voici comment procéder :

<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

Dans cet exemple, nous définissons une fonction safe() qui prend un argument de chaîne et le renvoie sous la forme template.HTML. Dans le modèle, nous pouvons transmettre des commentaires HTML à cette fonction en utilisant {{safe ""}}. Cela garantit que les commentaires ne sont pas échappés.

Utilisation

Pour utiliser cette technique, transformez simplement vos commentaires HTML au format suivant :

<code class="html">{{safe "<!-- Your comment -->"}}</code>
Copier après la connexion

ou

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

En utilisant cette approche, vos commentaires HTML seront conservés dans la sortie rendue.

Remarque :

  • Si vos commentaires HTML contiennent des guillemets, veillez à les échapper correctement, par exemple {{safe ""}}.
  • Évitez d'utiliser du HTML conditionnel. commentaires car ils peuvent interférer avec le mécanisme d'échappement contextuel.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!