Mengapa Komen HTML My Go Hilang dalam Halaman Dirender?

Patricia Arquette
Lepaskan: 2024-11-02 05:09:03
asal
765 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

atau

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

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!