package main import ( "fmt" "html/template" "log" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { render(w, "test.page.gohtml") }) fmt.Println("Starting front end service on port 4000") err := http.ListenAndServe(":4000", nil) if err != nil { log.Panic(err) } } func render(w http.ResponseWriter, t string) { partials := []string{ "./cmd/web/templates/base.layout.gohtml", "./cmd/web/templates/header.partial.gohtml", "./cmd/web/templates/footer.partial.gohtml", } var templateSlice []string templateSlice = append(templateSlice, fmt.Sprintf("./cmd/web/templates/%s", t)) templateSlice = append(templateSlice, partials...) tmpl, err := template.ParseFiles(templateSlice...) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } if err := tmpl.Execute(w, nil); err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) } }