Golang使用gin模板渲染base64图片出现#ZgotmplZ的解决办法

 更新时间:2024年05月31日 09:49:10   作者:彭世瑜  
这篇文章主要介绍了Golang使用gin模板渲染base64图片出现#ZgotmplZ的的场景复现和解决办法,文中通过代码示例讲解的非常详细,对大家解决问题有一定的帮助,需要的朋友可以参考下

问题描述

gin模板渲染base64图片出现#ZgotmplZ

场景复现

项目目录

main.go
templates/
    index.html

gin模板渲染base64图片

package main

import (
    "net/http"

    "github.com/gin-gonic/gin"
)

// base64图片
var imageUrl = "data:image/gif;base64,R0lGODlhMwAxAIAAAAAAAP///yH5BAAAAAAALAAAAAAzADEAAAK8jI+pBr0PowytzotTtbm/DTqQ6C3hGXElcraA9jIr66ozVpM3nseUvYP1UEHF0FUUHkNJxhLZfEJNvol06tzwrgdLbXsFZYmSMPnHLB+zNJFbq15+SOf50+6rG7lKOjwV1ibGdhHYRVYVJ9Wnk2HWtLdIWMSH9lfyODZoZTb4xdnpxQSEF9oyOWIqp6gaI9pI1Qo7BijbFZkoaAtEeiiLeKn72xM7vMZofJy8zJys2UxsCT3kO229LH1tXAAAOw=="

func main() {
    app := gin.Default()

    // 加载模板文件
    app.LoadHTMLGlob("templates/*")

    // 生成验证码
    app.GET("/", func(ctx *gin.Context) {
        ctx.HTML(http.StatusOK, "index.html", gin.H{
            "imageUrl": imageUrl,
        })
    })

    // 监听并在 http://127.0.0.1:8080 上启动服务
    app.Run()
}

模板内容 index.html

<img src="{{.imageUrl}}">

图片没有正常显示

查看页面渲染结果,发现base64字符串没有显示完整

<img src="#ZgotmplZ">

解决办法

修改字符串,指定其类型

"imageUrl": template.URL(imageUrl)

完整代码

package main

import (
    "html/template"
    "net/http"

    "github.com/gin-gonic/gin"
)

var imageUrl = "data:image/gif;base64,R0lGODlhMwAxAIAAAAAAAP///yH5BAAAAAAALAAAAAAzADEAAAK8jI+pBr0PowytzotTtbm/DTqQ6C3hGXElcraA9jIr66ozVpM3nseUvYP1UEHF0FUUHkNJxhLZfEJNvol06tzwrgdLbXsFZYmSMPnHLB+zNJFbq15+SOf50+6rG7lKOjwV1ibGdhHYRVYVJ9Wnk2HWtLdIWMSH9lfyODZoZTb4xdnpxQSEF9oyOWIqp6gaI9pI1Qo7BijbFZkoaAtEeiiLeKn72xM7vMZofJy8zJys2UxsCT3kO229LH1tXAAAOw=="

func main() {
    app := gin.Default()

    // 加载模板文件
    app.LoadHTMLGlob("templates/*")

    // 生成验证码
    app.GET("/", func(ctx *gin.Context) {
        ctx.HTML(http.StatusOK, "index.html", gin.H{
            "imageUrl": template.URL(imageUrl),
        })
    })

    // 监听并在 http://127.0.0.1:8080 上启动服务
    app.Run()
}

渲染结果

再次查看其渲染结果,发现base64字符串显示完整了

<img src="data:image/gif;base64,R0lGODlhMwAxAIAAAAAAAP///yH5BAAAAAAALAAAAAAzADEAAAK8jI&#43;pBr0PowytzotTtbm/DTqQ6C3hGXElcraA9jIr66ozVpM3nseUvYP1UEHF0FUUHkNJxhLZfEJNvol06tzwrgdLbXsFZYmSMPnHLB&#43;zNJFbq15&#43;SOf50&#43;6rG7lKOjwV1ibGdhHYRVYVJ9Wnk2HWtLdIWMSH9lfyODZoZTb4xdnpxQSEF9oyOWIqp6gaI9pI1Qo7BijbFZkoaAtEeiiLeKn72xM7vMZofJy8zJys2UxsCT3kO229LH1tXAAAOw==">

到此这篇关于Golang使用gin模板渲染base64图片出现#ZgotmplZ的解决办法的文章就介绍到这了,更多相关Golang gin渲染出现#ZgotmplZ内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅析Go语言中的逃逸分析

    浅析Go语言中的逃逸分析

    在Go语言中,内存分配和逃逸分析是至关重要的概念,对于理解代码的性能和内存使用情况至关重要,本文将深入探讨Go语言中的内存分配原理以及逃逸分析的作用,希望对大家有所帮助
    2024-04-04
  • 解析Go 标准库 http.FileServer 实现静态文件服务

    解析Go 标准库 http.FileServer 实现静态文件服务

    http.FileServer 方法属于标准库 net/http,返回一个使用 FileSystem 接口 root 提供文件访问服务的 HTTP 处理器。下面通过本文给大家介绍Go 标准库 http.FileServer 实现静态文件服务的相关知识,感兴趣的朋友一起看看吧
    2018-08-08
  • go goth封装第三方认证库示例详解

    go goth封装第三方认证库示例详解

    这篇文章主要为大家介绍了go goth封装第三方认证库示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Go语言用Gin实现图书管理接口的实现示例

    Go语言用Gin实现图书管理接口的实现示例

    本文主要介绍了Go语言用Gin实现图书管理接口的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-08-08
  • k8s容器互联-flannel host-gw原理篇

    k8s容器互联-flannel host-gw原理篇

    这篇文章主要为大家介绍了k8s容器互联-flannel host-gw原理篇,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Go高效率开发Web参数校验三种方式实例

    Go高效率开发Web参数校验三种方式实例

    这篇文章主要介绍了Go高效率开发Web参数校验三种方式实例,需要的朋友可以参考下
    2022-11-11
  • golang生成指定位数的随机数的方法

    golang生成指定位数的随机数的方法

    这篇文章主要介绍了golang生成指定位数的随机数的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • Golang 空map和未初始化map的注意事项说明

    Golang 空map和未初始化map的注意事项说明

    这篇文章主要介绍了Golang 空map和未初始化map的注意事项说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • Go 并发控制 errgroup.Group的实现示例

    Go 并发控制 errgroup.Group的实现示例

    本文主要介绍了Go 并发控制 errgroup.Group的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-04-04
  • Go基于雪花算法生成随机id

    Go基于雪花算法生成随机id

    雪花算法是twitter开源的由64位整数组成的分布式ID,本文主要介绍了Go基于雪花算法生成随机id,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05

最新评论