Я начал писать приложение Gin, и мое дерево проектов выглядит как
-assets
--css
---{bootstrap}
-templates
--layouts
---footer.html
---head.html
---header.html
--book.html
-main.go
В main.go я загружаю шаблоны, и нет ошибки
router.LoadHTMLGlob("./templates/layouts/*.html")
Я определяю шаблоны
{{ define "head" }}
<head>
//Head
</head>
{{ end }}
И я их вкладываю
{{ define "header" }}
{{ template "head.html" . }}
//HTML
{{ end }}
Но когда я пытаюсь их использовать, я получаю пустой вывод
{{ template "header" . }}
<h1>{{ .Title}}</h1>
<h3>{{ .Author.Fullname}}</h3>
[Редактировать] Функция, которая выполняет шаблон:
func getBook(c *gin.Context) {
//DB stuff
var book models.Book
t, err := template.ParseFiles("templates/book.html")
if err != nil {
log.Println(err)
}
t.Execute(c.Writer, book)
}
Полный код можно найти на github