问题
这里我们一次访问
http://localhost:9911/
请求了2次
原因
/favicon.ico实际上是您的浏览器请求的。如果您从外壳程序运行curl请求,则不会看到两个HandleFunc请求。
解决方案
package main
import (
"fmt"
"log"
"net/http"
)
func handle(w http.ResponseWriter, r *http.Request) {
fmt.Println("1")
}
func faviconPath(w http.ResponseWriter, r *http.Request) {
http.ServeFile(w, r, "path/to/favicon.ico")
}
func main() {
//要处理/favicon.ico路径
http.HandleFunc("/favicon.ico", faviconPath)
http.HandleFunc("/", handle)
err := http.ListenAndServe(":9911", nil)
if err != nil {
log.Fatal("ListenAndServe err ", err)
}
}
因为要处理/favicon.ico路径
加一个
http.HandleFunc(“/favicon.ico”, faviconPath)
函数
func faviconPath(w http.ResponseWriter, r *http.Request) {
http.ServeFile(w, r, “path/to/favicon.ico”)
}