2016-04-29 25 views
5

Cố gắng hiển thị các mẫu HTML để gửi qua email với các tệp đính kèm được nhúng với cid:. Vấn đề là, Go không trốn thoát và tôi không thể làm gì cả.Golang - Không thoát trong các mẫu HTML

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

mẫu thử nghiệm của tôi trông ít như thế này:

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

Output là:

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

Nếu văn bản được bối cảnh thuộc tính bên ngoài, nó được đánh giá một cách chính xác, nhưng khi nó là một src thuộc tính nó luôn luôn trở thành chuỗi lỗi đó. Tôi đã thử cũng thay đổi giá trị từ string thành template.HTMLAttr nhưng không có gì xảy ra. Giá trị Cid ​​luôn được đánh giá là đầu ra lỗi #ZgotmplZ.

+0

có thể trùng lặp của [Làm thế nào để thoát khỏi ZgotmplZ từ html/mẫu trong golang?] (Http://stackoverflow.com/questions/36382624/how-to-get-rid- of-zgotmplz-from-html-template-in-golang) và [Đi: đầu vào css unescape trong HTML] (http://stackoverflow.com/questions/27906812/go-unescape-css-input-in-html) – icza

Trả lời

11

Vấn đề là thuộc tính src không được coi là thuộc tính, mà là một URL. Nếu bạn thay đổi từ string thành template.URL thì nó hoạt động tốt.

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

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

+0

Cảm ơn rất nhiều .. Tôi hoàn toàn mù quáng. Tôi đã thử tất cả các loại có thể là HTML, HTMLAttr, thậm chí CSS, v.v. Nhưng tôi không thấy loại URL và phần cuối của chỉ mục. Cảm ơn bạn – Arxeiss

Các vấn đề liên quan