2016-04-29 20 views
5

cid: ile ekleri olan e-posta ile göndermek için HTML şablonları oluşturmaya çalışıyorum. Sorun şu ki, Go kaçıyor ve ben hiçbir şey yapamam. bir zamanGolang - HTML şablonlarında sakın çalma

Dog: <img src="#ZgotmplZ"> 
Cat: cid:cat.png 

metin dışında nitelik bağlam, doğru değerlendirilir ise, ancak: is

Dog: <img src="{{.Dog}}"> 
Cat: {{.Cat}} 

Çıktı:

tplVars := map[string]interface{}{ 
    "Dog": "cid:dog.png", 
    "Cat": "cid:cat.png", 
} 

Benim test şablonu daha az şöyle src özniteliği her zaman bu hata dizesi haline gelir. string'dan template.HTMLAttr'a kadar olan değeri de değiştirdim ama hiçbir şey olmadı. Cid değeri her zaman bu hata çıktısı #ZgotmplZ ile değerlendirilir.

+0

Olası kopyalar [golang içinde html/şablondan ZgotmplZ kurtulmak için nasıl?] (Http://stackoverflow.com/questions/36382624/how-to-get-rid- of-zgotmplz-from-html-template-in-golang) ve [Go: HTML'de unescape css girişi] (http://stackoverflow.com/questions/27906812/go-unescape-css-input-in-html) – icza

cevap

11

Sorun, src özniteliğinin kesinlikle bir özellik değil, bir URL olarak ele alınmasıdır. string'dan bir template.URL'a değiştirirseniz, iyi çalışır.

tplVars := map[string]interface{}{ 
    "Dog": template.URL("cid:dog.png"), 
    "Cat": "cid:cat.png", 
} 

https://play.golang.org/p/ZN27nGnUE9

ait
+0

Çok teşekkürler .. Tamamen körüm. Tüm olası türleri HTML, HTMLAttr, hatta CSS vb. Olarak denedim. Ancak URL türünü ve endeksin sonunu görmedim. teşekkür ederim – Arxeiss