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"):一次只加载指定文件。
相关推荐
伍哥的传说28 分钟前
React性能优化终极指南:memo、useCallback、useMemo全解析
前端·react.js·性能优化·usecallback·usememo·react.memo·react devtools
2301_781668617 小时前
前端基础 JS Vue3 Ajax
前端
上单带刀不带妹7 小时前
前端安全问题怎么解决
前端·安全
Fly-ping8 小时前
【前端】JavaScript 的事件循环 (Event Loop)
开发语言·前端·javascript
SunTecTec8 小时前
IDEA 类上方注释 签名
服务器·前端·intellij-idea
在逃的吗喽9 小时前
黑马头条项目详解
前端·javascript·ajax
袁煦丞9 小时前
有Nextcloud家庭共享不求人:cpolar内网穿透实验室第471个成功挑战
前端·程序员·远程工作
小磊哥er9 小时前
【前端工程化】前端项目开发过程中如何做好通知管理?
前端
拾光拾趣录9 小时前
一次“秒开”变成“转菊花”的线上事故
前端
你我约定有三9 小时前
前端笔记:同源策略、跨域问题
前端·笔记