go - Rendering template in golang -


i using echo framework in go create web app. have directory called templates inside have 2 directories layouts , users. directory tree follows:

layouts |--------default.tmpl |--------footer.tmpl |--------header.tmpl |--------sidebar.tmpl  users |--------index.tmpl 

the code header, footer, , sidebar similar with:

{{define "header"}} <!-- html here --> {{ end }}  .... 

default.tmpl follows:

{{ define "default" }} {{ template "header" }}  {{ template "sidebar" }}  <div class="content-wrapper">     <div class="container-fluid">          <div class="row">             <div class="col-md-12">                 <h2 class="page-title">dashboard</h2>                 {{ template "content" .}}             </div>         </div>     </div> </div>  {{ template "footer" }} {{ end }} 

and users\index.tmpl

{{define "index"}}     {{template "default"}} {{end}}  {{define "content"}} <p>hello world</p> {{end}} 

now, parse files using

t := &template{} t.templates = template.must(template.parseglob("views/layouts/*")) t.templates = template.must(template.parseglob("views/user/*")) 

and try render

func user(c echo.context) error {     return c.render(http.statusok, "index", nil) } 

but internal server error. don't know how debug templates either. code works if users\index.tmpl not contain other template tags inside it. when try include main template in it, error returns. doing wrong here?

managed solve this. page https://elithrar.github.io/article/approximating-html-template-inheritance/ helped. basically, had change code parsed templates to:

tpls, err := filepath.glob("views/user/*") if err != nil {     log.fatal(err) }  layouts, err := filepath.glob("views/layouts/*") if err != nil {     log.fatal(err) }  _, layout := range layouts {     files := append(layouts, tpls)     t.templates = template.must(template.parsefiles(files...)) } 

Comments

Popular posts from this blog

Ansible - ERROR! the field 'hosts' is required but was not set -

customize file_field button ruby on rails -

SoapUI on windows 10 - high DPI/4K scaling issue -