官方地址:https://golang.org/pkg/html/template/
翻译: https://colobu.com/2019/11/05/Golang-Templates-Cheatsheet/#if/else_%E8%AF%AD%E5%8F%A5

1. 设置静态文件路径

  1. package main
  2. import (
  3. "net/http"
  4. "github.com/gin-gonic/gin"
  5. )
  6. func main() {
  7. // 创建一个默认的路由引擎
  8. r := gin.Default()
  9. // 配置模板
  10. r.LoadHTMLGlob("templates/**/*")
  11. //router.LoadHTMLFiles("templates/template1.html", "templates/template2.html")
  12. // 配置静态文件夹路径 第一个参数是api,第二个是文件夹路径
  13. r.StaticFS("/static", http.Dir("./static"))
  14. // GET:请求方式;/hello:请求的路径
  15. // 当客户端以GET方法请求/hello路径时,会执行后面的匿名函数
  16. r.GET("/posts/index", func(c *gin.Context) {
  17. // c.JSON:返回JSON格式的数据
  18. c.HTML(http.StatusOK, "posts/index.tmpl", gin.H{
  19. "title": "posts/index",
  20. })
  21. })
  22. r.GET("gets/login", func(c *gin.Context) {
  23. c.HTML(http.StatusOK, "posts/login.tmpl", gin.H{
  24. "title": "gets/login",
  25. })
  26. })
  27. // 启动HTTP服务,默认在0.0.0.0:8080启动服务
  28. r.Run()
  29. }

2. index.html内容

  1. <html>
  2. <h1>
  3. {{ .title }}
  4. </h1>
  5. </html>

3. templates/posts/index.tmpl

  1. {{ define "posts/index.tmpl" }}
  2. <html><h1>
  3. {{ .title }}
  4. </h1>
  5. <p>Using posts/index.tmpl</p>
  6. </html>
  7. {{ end }}

4. templates/users/index.tmpl

  1. {{ define "users/index.tmpl" }}
  2. <html><h1>
  3. {{ .title }}
  4. </h1>
  5. <p>Using users/index.tmpl</p>
  6. </html>
  7. {{ end }}