我收到此错误,无论我以哪种方式设置内容类型并编写状态代码。我真的不知道为什么...在我看来,这是一项非常平凡的任务 - 我只想设置内容类型和http状态代码。服务器确实可以正常工作,它为网页提供服务很好,但是每次我请求该端点/路径时,它都会将该消息记录到终端。错误http: superfluous response.WriteHeader call from main.indexHandler (server.go:49)法典package mainimport ( "context" "log" "net/http" "os" "os/signal" "time" "github.com/gorilla/mux")func main() { r := mux.NewRouter() fs := http.FileServer(http.Dir("./static")) r.PathPrefix("/assets/").Handler(http.StripPrefix("/assets/", fs)) r.HandleFunc("/", indexHandler).Methods("GET") server := &http.Server{ Addr: "0.0.0.0:8080", Handler: r, } go func() { if err := server.ListenAndServe(); err != nil { log.Fatal("Unable to start the server") } }() c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt) <-c ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() if err := server.Shutdown(ctx); err != nil { log.Fatal("Unable to gracefully shutdown the server") }}func indexHandler(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "text/html") w.WriteHeader(http.StatusOK) http.ServeFile(w, r, "./static/index.html")}
1 回答
茅侃侃
TA贡献1842条经验 获得超21个赞
在
func indexHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "text/html")
w.WriteHeader(http.StatusOK)
http.ServeFile(w, r, "./static/index.html")
}
您不需要该电话。 将根据其在提供文件时的成功设置状态。w.WriteHeaderhttp.ServeFile
如果要了解此错误消息是如何产生的,请查看该方法的实现以及如果标头已写入,它的作用。WriteHeader
- 1 回答
- 0 关注
- 110 浏览
添加回答
举报
0/150
提交
取消