Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Komen HTML My Go Hilang dalam Halaman Dirender?

Mengapa Komen HTML My Go Hilang dalam Halaman Dirender?

Patricia Arquette
Patricia Arquetteasal
2024-11-02 05:09:03766semak imbas

Why Are My Go HTML Comments Disappearing in Rendered Pages?

Komen Go HTML Tidak Dipaparkan: Penyelesaian dengan templat.HTML

Dalam aplikasi web Go, hilangnya ulasan HTML dalam halaman yang diberikan boleh menjadi isu yang mengecewakan. Ini amat bermasalah untuk kod KnockoutJS yang bergantung pada sintaks aliran kawalan tanpa kontena.

Sebab di sebalik tingkah laku ini ialah secara lalai, pakej html/template Go melarikan diri daripada kandungan HTML atas sebab keselamatan. Ini bermakna ulasan HTML, yang dibalut dengan , dipaparkan sebagai teks terlepas dan bukannya dipaparkan sebagai ulasan.

Untuk menyelesaikan isu ini, pakej html/template menyediakan jenis khas dipanggil templat.HTML. Nilai jenis ini tidak terlepas apabila diberikan.

Pendekatan Fungsi Tersuai

Satu penyelesaian yang berkesan ialah mencipta fungsi tersuai untuk templat anda yang membungkus ulasan HTML anda dalam templat .HTML. Begini cara anda boleh melakukannya:

<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>

Dalam contoh ini, kami mentakrifkan fungsi safe() yang mengambil hujah rentetan dan mengembalikannya sebagai templat.HTML. Dalam templat, kami boleh menghantar ulasan HTML kepada fungsi ini menggunakan {{safe ""}}. Ini memastikan bahawa ulasan tidak terlepas.

Penggunaan

Untuk menggunakan teknik ini, cuma tukar ulasan HTML anda kepada format berikut:

<code class="html">{{safe "<!-- Your comment -->"}}</code>

atau

<code class="html">{{"<!-- Your comment -->" | safe}}</code>

Dengan menggunakan pendekatan ini, ulasan HTML anda akan dikekalkan dalam output yang diberikan.

Nota:

  • Jika ulasan HTML anda mengandungi tanda petikan, pastikan anda melepaskannya dengan betul, cth., {{safe ""}}.
  • Elakkan menggunakan HTML bersyarat komen kerana ia boleh mengganggu mekanisme melarikan diri sensitif konteks.

Atas ialah kandungan terperinci Mengapa Komen HTML My Go Hilang dalam Halaman Dirender?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn