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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一文带你深入了解Golang中的参数传递机制

    一文带你深入了解Golang中的参数传递机制

    值传递和引用传递是编程语言中两种主要的参数传递方式,决定了函数调用过程中实参如何影响形参以及函数内部对形参的修改是否会影响到原始实参,下面就跟随小编一起深入了解下golang中参数传递机制吧
    2024-01-01
  • Go语言多人聊天室项目实战

    Go语言多人聊天室项目实战

    这篇文章主要为大家详细介绍了Go语言多人聊天室项目实战,实现单撩或多撩等多种功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • Golang 利用反射对结构体优雅排序的操作方法

    Golang 利用反射对结构体优雅排序的操作方法

    这篇文章主要介绍了Golang 利用反射对结构体优雅排序的操作方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • Linux中Go环境配置和GoModule常用操作

    Linux中Go环境配置和GoModule常用操作

    这篇文章主要介绍了Linux中Go环境配置和GoModule,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • Go基础教程系列之import导入包(远程包)和变量初始化详解

    Go基础教程系列之import导入包(远程包)和变量初始化详解

    这篇文章主要介绍了Go基础教程系列之import导包和初始化详解,需要的朋友可以参考下
    2022-04-04
  • Go压缩位图库roaring安装使用详解

    Go压缩位图库roaring安装使用详解

    这篇文章主要为大家介绍了Go压缩位图库roaring安装使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • GO语言中的方法值和方法表达式的使用方法详解

    GO语言中的方法值和方法表达式的使用方法详解

    这篇文章主要介绍了GO的方法值和方法表达式的使用方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • 手把手带你走进Go语言之语法基础解析

    手把手带你走进Go语言之语法基础解析

    这篇文章主要介绍了手把手带你走进Go语言之语法基础,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Golang实现断点续传功能

    Golang实现断点续传功能

    这篇文章主要为大家详细介绍了Golang实现断点续传、复制文件功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • 解决golang http.FileServer 遇到的坑

    解决golang http.FileServer 遇到的坑

    这篇文章主要介绍了解决golang http.FileServer 遇到的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12

最新评论