package main import ( "bytes" "io" "net/http" "os" "strconv" _ "embed" ) var index string = "" func SendIndex(wr http.ResponseWriter, req *http.Request) { if index == "" { bytes, err := os.ReadFile("index.html") if err != nil { http.Error(wr, err.Error(), http.StatusInternalServerError) return } index = string(bytes) } resp := http.Response{ Body: io.NopCloser(bytes.NewBufferString(index)), StatusCode: 200, } resp.Header = http.Header{} resp.Header.Add("Content-Type", "text/html") resp.Header.Add("Content-Length", strconv.Itoa(len(index))) resp.Header.Add("Server", "astra") req.Response = &resp copyHeader(wr.Header(), resp.Header) wr.WriteHeader(resp.StatusCode) flush(wr) copyBody(wr, resp.Body) }