Bagaimana untuk tidak menanggalkan komen HTML dalam templat HTML dalam gin gonic
P粉193307465
P粉193307465 2023-07-18 19:17:03
0
1
629

Saya menggunakan Gin Gonic dan fail templat HTML.

Fail templat saya mengandungi (berbilang baris) komen HTML yang serupa dengan <!--Ini ulasan saya -->. Saya ingin mengekalkan kandungan HTML dalam output yang dikembalikan.

c.HTML(http.StatusOK, "static/templates/mytemplate.html", gin.H{
    "name": "World",
})

Soalan: Bagaimana untuk mengkonfigurasi enjin templat atau c.HTML untuk tidak menanggalkan ulasan HTML dalam templat?

Jawapan yang lebih terperinci

/static/templates/mytemplate.html:

<!DOCTYPE html>
<html lang="de">
<body>
<!--
这些行在输出中缺失。
-->
Hello World
</body>
</html>

Pengendali saya:

func NewRouter() *gin.Engine {
    router := gin.Default()
    // ... load templates from file system ...
    router.GET("/foo", fooHandler)
    return router
}
func fooHandler(c *gin.Context) {
    c.HTML(http.StatusOK, "static/templates/mytemplate.html", gin.H{
        "name": "World",
    })
}

Selepas mengedit, saya cuba menambah anotasi sebagai pemalar :

{{"<!-- my comment goes here -->"}}

tetapi tag itu terlepas sebagai

<!-- foo --> 


P粉193307465
P粉193307465

membalas semua(1)
P粉237029457

Saya rasa sebab komen HTML dialih keluar adalah kerana saya membaca templat HTML sebagai rentetan (bukannya terus sebagai fail). Punca sebenar masih tidak dapat ditentukan. Bagaimanapun, penyelesaian yang berkesan untuk saya ialah menggunakan ruang letak dalam templat.

<!DOCTYPE html>
<html lang="de">
<body>
{{ .myComment }}
Hello World
</body>
</html>

dan hantar komen HTML itu sendiri sebagai parameter:

const myHtmlComment string = `
<!--
these lines are (not) missing (anymore) in the output
-->
`
func fooHandler(c *gin.Context) {
    c.HTML(http.StatusOK, "static/templates/mytemplate.html", gin.H{
        "name": "World",
        "myComment": template.HTML(myHtmlComment),
    })
}

Gunakan import "html/template" untuk mengimport

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan