2012-12-29 50 views
9

我在GAE中使用gorilla mux時遇到了一些問題。GAE Golang Gorilla mux - 404頁未找到

當我嘗試它,我'404頁未找到'。沒有調用rootHandler函數(沒有生成痕跡)

下面是我的代碼的一部分,有什麼想法嗎?

THK提前

... 
    func init() { 
    r := mux.NewRouter() 
    r.HandleFunc("/",rootHandler) 
    } 
    func rootHandler(w http.ResponseWriter, r *http.Request) { 
    var functionName = "rootHandler" 
    c := appengine.NewContext(r) 
    c.Infof(functionName+"-start") 
    defer c.Infof(functionName+"-end") 
... 

回答

20

你必須將請求路由到您的MUX路由器。 http包中有DefaultServeMux它被AppEngine使用,但mux沒有。 (和它不與net/http本身註冊其路由)

也就是說,所有你需要做的,是net/http註冊mux路由器:

func main() { 
    r := mux.NewRouter() 
    r.HandleFunc("/", HomeHandler) 
    r.HandleFunc("/products", ProductsHandler) 
    r.HandleFunc("/articles", ArticlesHandler) 
    http.Handle("/", r) 
} 

(直接從文檔)

這裏的重要部分是http.Handle("/", r)

+0

thk,完美答案。現在工作 – rlasjunies