Go: Beheben von Problemen bei der Darstellung von HTML-Kommentaren
Beim Arbeiten mit Go-Webanwendungen kann es zu einem Problem kommen, bei dem HTML-Kommentare unerwartet aus dem verschwinden gerenderte Seite. Diese Anomalie wird häufig nach der Aktualisierung von Go auf eine neuere Version beobachtet.
Um dieses Problem zu beheben, ist es notwendig, den Vorlagenverarbeitungsmechanismus in Go zu verstehen. Das Paket html/template führt einen speziellen Typ namens template.HTML ein. Werte dieses Typs bleiben während der Vorlagenwiedergabe ohne Escapezeichen.
Die Lösung liegt darin, Ihre HTML-Kommentare als template.HTML zu markieren. Eine effektive Methode besteht darin, eine benutzerdefinierte Funktion in Ihrer Vorlage zu registrieren. Diese Funktion sollte ein String-Argument akzeptieren und es als template.HTML zurückgeben. Indem Sie Ihre HTML-Kommentare an diese Funktion übergeben, stellen Sie sicher, dass sie in der Ausgabe erhalten bleiben.
Hier ist ein Beispiel:
<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>
Durch die Registrierung der Funktion „safe()“ können Sie eine Transformation durchführen Ihre HTML-Kommentare in Vorlagenaktionen, die diese Funktion aufrufen und die Originalkommentare übergeben. Dadurch wird sichergestellt, dass sie in der Ausgabe erhalten bleiben.
Alternativ können Sie bei Bedarf die folgende Syntax verwenden:
<code class="go">{{"<!-- Some HTML comment -->" | safe}}</code>
Wenn Sie mit HTML-Kommentaren arbeiten, die Anführungszeichen enthalten, denken Sie daran, diese entsprechend zu maskieren:
<code class="go">{{safe "<!-- Some \"HTML\" comment -->"}}</code>
Abschließend sollten Sie bei der Verwendung bedingter HTML-Kommentare vorsichtig sein. Ihre Verwendung kann die im Paket html/template implementierte kontextsensitive Escape-Funktion stören. Weitere Einzelheiten finden Sie in der Dokumentation.
Das obige ist der detaillierte Inhalt vonWarum verschwinden HTML-Kommentare nach dem Update auf eine neuere Version?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!