doumei4964
2014-03-01 07:04
浏览 102
已采纳

http.Handle在Golang中不起作用

I try render a template:

func main() {
http.HandleFunc("/", index)
http.HandleFunc("/login", login)
err := fcgi.Serve(nil, http.HandlerFunc(handler))
}

func handler(w http.ResponseWriter, r *http.Request) {
   w.Header().Set("Content-type", "text/html")
   t, _ := template.ParseFiles("404.html")
   t.Execute(w, &page{Title: "not work"})
}

But when I open every page, even site.com/login, I see 404. Where can I find the problem?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • duanpa2143 2014-03-01 07:15
    已采纳

    fcgi package documentation explains

    [...] If handler [second argument of fcgi.Serve] is nil, http.DefaultServeMux is used.

    In order to make use of functions registered with http.HandleFunc in http.DefaultServeMux you should not pass second argument to Serve function otherwise the handler function will serve all requests.

    func main() {
        http.HandleFunc("/", index)
        http.HandleFunc("/login", login)
        err := fcgi.Serve(nil, nil)
    }
    
    打赏 评论

相关推荐 更多相似问题