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"):一次只加载指定文件。
相关推荐
uhakadotcom3 分钟前
开源:subdomainpy快速高效的 Python 子域名检测工具
前端·后端·面试
爱加班的猫12 分钟前
Node.js 中 require 函数的原理深度解析
前端·node.js
用户81651112639713 分钟前
WWDC 2025 Build a SwiftUI app with the new design
前端
伍哥的传说16 分钟前
Vue 3.5重磅更新:响应式Props解构,让组件开发更简洁高效
前端·javascript·vue.js·defineprops·vue 3.5·响应式props解构·vue.js新特性
阅文作家助手开发团队_山神19 分钟前
第一章: Mac Flutter Engine开发准备工作
前端·flutter
菜牙买菜22 分钟前
Hicharts入门
前端·vue.js·数据可视化
摸着石头过河的石头28 分钟前
手把手教你入门 MCP:模型上下文协议与 Trae IDE 中的实践
前端·mcp
德育处主任28 分钟前
p5.js 3D 形状 "预制工厂"——buildGeometry ()
前端·javascript·canvas
Mintopia30 分钟前
React 牵手 Ollama:本地 AI 服务对接实战指南
前端·javascript·aigc