登录
首页 >  Golang >  Go问答

传递变量并在 HTML 模板中用作图像来源的方法

来源:stackoverflow

时间:2024-02-25 12:24:25 331浏览 收藏

推广推荐
免费电影APP ➜
支持 PC / 移动端,安全直达

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天golang学习网就整理分享《传递变量并在 HTML 模板中用作图像来源的方法》,文章讲解的知识点主要包括,如果你对Golang方面的知识点感兴趣,就不要错过golang学习网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。

问题内容

我正在开发一个网络服务器。 我的目标是使用 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)

这是我的index.html

<!DOCTYPE html>
<html lang="en">
  <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”


正确答案


假设您使用的是 html/template 包,它会转义字符串以防止代码注入。您可以将您的base64 dataurl 包装在template.url 中,以告诉模板引擎如何处理您的字符串。

varmap := map[string]interface{}{
    "username": discordTag,
    "b64":      template.URL("data:image/png;base64,looongstring"),
}

我应该注意到,除非图像非常小,否则最好静态地提供它们,而不是嵌入到 html 中。

理论要掌握,实操不能落!以上关于《传递变量并在 HTML 模板中用作图像来源的方法》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>