gin如何返回html

✅ 方法一:直接返回 HTML 字符串

这种方式适合简单场景,比如返回一段固定的 HTML 内容。

go 复制代码
package main

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

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

	r.GET("/html", func(c *gin.Context) {
		htmlContent := `<html><body><h1>Hello Gin</h1></body></html>`
		c.Data(200, "text/html; charset=utf-8", []byte(htmlContent))
	})

	r.Run(":8080")
}

✅ 方法二:使用模板渲染返回 HTML

适合页面模板渲染场景。你可以定义 HTML 模板文件,然后将数据传递给模板。

1. 项目结构示例

复制代码
.
├── main.go
└── templates
    └── index.html

2. templates/index.html

html 复制代码
<html>
  <body>
    <h1>Hello {{ .name }}</h1>
  </body>
</html>

3. main.go

go 复制代码
package main

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

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

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

	r.GET("/html", func(c *gin.Context) {
		c.HTML(200, "index.html", gin.H{
			"name": "小诸葛",
		})
	})

	r.Run(":8080")
}

📝 补充:LoadHTMLGlobLoadHTMLFiles 区别

  • LoadHTMLGlob("templates/*"):支持通配符加载多个模板文件。
  • LoadHTMLFiles("templates/index.html"):一次只加载指定文件。
相关推荐
拓端研究室1 分钟前
视频讲解:门槛效应模型Threshold Effect分析数字金融指数与消费结构数据
前端·算法
工一木子1 小时前
URL时间戳参数深度解析:缓存破坏与前端优化的前世今生
前端·缓存
半点寒12W3 小时前
微信小程序实现路由拦截的方法
前端
某公司摸鱼前端3 小时前
uniapp socket 封装 (可拿去直接用)
前端·javascript·websocket·uni-app
要加油哦~3 小时前
vue | 插件 | 移动文件的插件 —— move-file-cli 插件 的安装与使用
前端·javascript·vue.js
小林学习编程4 小时前
Springboot + vue + uni-app小程序web端全套家具商场
前端·vue.js·spring boot
柳鲲鹏4 小时前
WINDOWS最快布署WEB服务器:apache2
服务器·前端·windows
weixin-a153003083165 小时前
【playwright篇】教程(十七)[html元素知识]
java·前端·html
ai小鬼头5 小时前
AIStarter最新版怎么卸载AI项目?一键删除操作指南(附路径设置技巧)
前端·后端·github
一只叫煤球的猫6 小时前
普通程序员,从开发到管理岗,为什么我越升职越痛苦?
前端·后端·全栈