I started to write a Gin application and my project tree looks like

-assets
--css
---{bootstrap}
-templates
--layouts
---footer.html
---head.html
---header.html
--book.html
-main.go

In main.go I load templates and there is no error

router.LoadHTMLGlob("./templates/layouts/*.html")

I define templates

{{ define "head" }}
<head>
    //Head
</head>
 {{ end }}

And I nest them

 {{ define "header" }}
 {{ template "head.html" . }}
 //HTML
 {{ end }}

But when I try to use them, I get empty output

 {{ template "header" . }}
 <h1>{{ .Title}}</h1>

 <h3>{{ .Author.Fullname}}</h3>

[Edit] Function that executes the template:

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)
}

Full-code can be found on github