Как не сбежать в шаблонах HTML

Попытка отобразить шаблоны HTML для отправки по электронной почте со встроенными вложениями с помощью cid:. Проблема в том, что Go убегает, и я ничего не могу сделать.

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

Мой тестовый шаблон выглядит примерно так:

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

Выход:

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

Если текст находится вне контекста атрибута, он оценивается правильно, но когда это атрибут src, он всегда становится этой строкой ошибки. Я также пытался изменить значение с string на template.HTMLAttr, но ничего не произошло. Значение Cid всегда оценивается как вывод ошибки #ZgotmplZ.


person Arxeiss    schedule 29.04.2016    source источник


Ответы (1)


Проблема в том, что атрибут src рассматривается не строго как атрибут, а как URL-адрес. Если вы измените его с string на template.URL, все будет работать нормально.

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

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

person dave    schedule 29.04.2016
comment
Большое спасибо .. Я полностью слепой. Я пробовал все возможные типы, такие как HTML, HTMLAttr, даже CSS и т. д. Но я не видел тип URL и конец индекса. Спасибо - person Arxeiss; 29.04.2016