我正在处理 Web 服务器。我的目标是使用 base64 字符串加载图像,并在网站上显示该图像。base64 字符串应根据我用于加载模板的变量而有所不同。这是我的 Go 渲染代码:varmap := map[string]interface{}{ "username": discordTag, "b64": "data:image/png;base64,looongstring",}fmt.Println("logged in!")templates.ExecuteTemplate(w, "index.html", varmap)这是我的索引.html<!DOCTYPE html><html> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </head> <body> <div> <h1>Welcome back, {{ .username }} {{ .b64 }}</h1> <img src="{{ .b64 }}"/> </div> </body></html>用户名的显示工作正常,将 base64 字符串显示为文本也很好。用户名显示工作查看浏览器呈现的 HTML,img src 显示为“#ZgotmplZ”
1 回答

阿晨1998
TA贡献2037条经验 获得超6个赞
假设您使用的是 html/template 包,该包会转义字符串以防止代码注入。您可以将 base64 dataurl 包装进去,告诉模板引擎如何处理您的字符串。template.URL
varmap := map[string]interface{}{
"username": discordTag,
"b64": template.URL("data:image/png;base64,looongstring"),
}
我应该注意,除非图像非常小,否则最好静态地提供它们,而不是将嵌入到html中。
- 1 回答
- 0 关注
- 139 浏览
添加回答
举报
0/150
提交
取消