目录
- 问题描述
- 场景复现
- 解决办法
 
问题描述
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+pBr0PowytzotTtbm/DTqQ6C3hGXElcraA9jIr66ozVpM3nseUvYP1UEHF0FUUHkNJxhLZfEJNvol06tzwrgdLbXsFZYmSMPnHLB+zNJFbq15+SOf50+6rG7lKOjwV1ibGdhHYRVYVJ9Wnk2HWtLdIWMSH9lfyODZoZTb4xdnpxQSEF9oyOWIqp6gaI9pI1Qo7BijbFZkoaAtEeiiLeKn72xM7vMZofJy8zJys2UxsCT3kO229LH1tXAAAOw==">
参考
- go使用template出现#ZgotmplZ


















