This might be a very amateur question. I'm trying to embed static files into binary, ie. html. How do I do that with https://github.com/jteeuwen/go-bindata?
So I can access an asset with this https://github.com/jteeuwen/go-bindata#accessing-an-asset, but what do I do with "data", and how to do I parse files, execute template, and serve them in the directory?
I couldn't find any examples online, and will appreciate some help!
Given a directory structure like so:
example/ main.go data/hi.html
example/main.go
package main import ( "html/template" "log" "net/http" "os" ) var tmpl *template.Template func init() { data, err := Asset("data/hi.html") if err != nil { log.Fatal(err) } tmpl = template.Must(template.New("tmpl").Parse(string(data))) } func main() { // print to stdout tmpl.Execute(os.Stdout, map[string]string{"Name": "James"}) http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { tmpl.Execute(w, map[string]string{"Name": "James"}) }) log.Fatal(http.ListenAndServe(":8000", nil)) }
example/data/hi.html
<h1>Hi, {{.Name}}</h1>
run like so:
go-bindata data && go build && ./example
Console Output:
<h1>Hi, James</h1>
HTTP output:
Hi, James