package frontendhandler import ( "embed" "io/fs" "log" "net/http" ) //go:embed templates var templatesFs embed.FS //go:embed templates/static var staticFiles embed.FS func StartStaticFileServer() { staticFS, err := fs.Sub(staticFiles, "templates/static") if err != nil { log.Fatal(err) } http.HandleFunc("/", IndexHandler) http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.FS(staticFS)))) err = http.ListenAndServe(":8000", nil) if err != nil { panic(err) } } func IndexHandler(w http.ResponseWriter, r *http.Request) { fileContent, err := templatesFs.ReadFile("templates/index.html") if err != nil { log.Printf("Error Reading index.html %v", err) http.Error(w, "Could not read index.html", 500) } _, err = w.Write(fileContent) if err != nil { log.Printf("Could not Write to ReponseWrite %v", err) http.Error(w, "Could not write data", 500) } }