2 回答
TA贡献1810条经验 获得超4个赞
额外的请求是您的浏览器试图访问 /favicon.ico
例如,如果您在处理程序函数中将 http.Request 打印到 stdout,您就可以看到这一点。
TA贡献2039条经验 获得超8个赞
问题是您的处理程序正在提供诸如此类的额外静态内容favicon。如果您记录请求,您会看到您的浏览器可能也在请求 /favicon.ico,它被传递给同一个处理程序。
提供静态内容的一种方法是创建您自己的ServeMux:
package main
import (
"fmt"
"net/http"
"strings"
)
var chttp = http.NewServeMux()
func main() {
chttp.Handle("/", http.FileServer(http.Dir("./")))
http.HandleFunc("/", HomeHandler) // homepage
http.ListenAndServe(":8080", nil)
}
func HomeHandler(w http.ResponseWriter, r *http.Request) {
if (strings.Contains(r.URL.Path, ".")) {
chttp.ServeHTTP(w, r)
} else {
fmt.Fprintf(w, "HomeHandler")
}
}
- 2 回答
- 0 关注
- 275 浏览
添加回答
举报
