gpt4 book ai didi

go - 使用自定义状态代码提供 html 文件

转载 作者:行者123 更新时间:2023-12-03 02:40:04 25 4
gpt4 key购买 nike

我需要一个自定义的未找到 html 页面。这是我尝试过的:

package main

import (
"net/http"

"github.com/julienschmidt/httprouter"
)

func main() {
r := httprouter.New()

r.NotFound = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(404)
http.ServeFile(w, r, "files/not-found.html")
})

http.ListenAndServe(":8000", r)
}

我有行w.WriteHeader(404)来确保状态代码为404,但上面的代码给出了错误:

http: multiple response.WriteHeader calls

如果没有 w.WriteHeader(404) 行,则不会出现错误,并且页面会正确显示,但状态代码为 200。我希望它为 404。

最佳答案

您可以自己编写内容。

类似于:

r.NotFound = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
contents, err := ioutil.ReadFile("files/not-found.html")
if err != nil {
panic(err) // or do something useful
}
w.WriteHeader(404)
w.Header().Set("Content-Type", "text/html; charset=utf-8")
w.Write(contents)
})

关于go - 使用自定义状态代码提供 html 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48252937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com