func TestAssets(t *testing.T) { assets := auto.Assets() idx, ok := assets["index.html"] if !ok { t.Fatal("No index.html in compiled in assets") } if !bytes.Contains(idx, []byte("<html")) { t.Fatal("No html in index.html") } }
func embeddedStatic(assetDir string) http.Handler { assets := auto.Assets() return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { file := r.URL.Path if file[0] == '/' { file = file[1:] } if len(file) == 0 { file = "index.html" } if assetDir != "" { p := filepath.Join(assetDir, filepath.FromSlash(file)) _, err := os.Stat(p) if err == nil { http.ServeFile(w, r, p) return } } bs, ok := assets[file] if !ok { http.NotFound(w, r) return } mtype := mimeTypeForFile(file) if len(mtype) != 0 { w.Header().Set("Content-Type", mtype) } w.Header().Set("Content-Length", fmt.Sprintf("%d", len(bs))) w.Header().Set("Last-Modified", modt) w.Write(bs) }) }