package api import ( "embed" "fmt" "net/http" "path" ) //go:embed frontend/* var Frontend embed.FS func SpaHandler(fs http.FileSystem) http.Handler { fileServer := http.FileServer(fs) return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Println("/frontend" + r.URL.Path) r.URL.Path = "/frontend" + path.Clean(r.URL.Path) if _, err := fs.Open(path.Clean(r.URL.Path)); err != nil { r.URL.Path = "/" } fileServer.ServeHTTP(w, r) }) }