GoLang模板中使用Base64展示图片无法正常加载问题求助
问题原因
你的Go模板里<img>标签的属性写法存在语法错误:
HTML的属性值不支持用+运算符做字符串拼接,你写的src="data:image/png;base64," + {{$image.ImageDataBase64}}实际渲染后,src属性只会包含data:image/png;base64,这部分固定内容,后面的base64字符串会被识别为img标签的无效独立属性,不会被拼接到src里,自然无法正常加载图片。
修复方案
直接把base64变量插入到src属性的引号内部,紧跟在data:image/png;base64,后面即可,不需要额外的拼接符号,修改后的模板代码如下:
{{template "base" .}} {{define "content"}} {{$item := index .Data "item"}} {{$image := index .Data "image"}} <img src="data:image/png;base64,{{$image.ImageDataBase64}}" alt="Blank"/> {{$image.ImageDataBase64}} {{end}}
可选优化
如果后续需要支持多种图片格式,你可以在生成base64的逻辑里同步返回图片的MIME类型,模板里动态拼接前缀,不用写死image/png。
内容的提问来源于stack exchange,提问作者CodingAddict
相关产品推荐
相关产品推荐

