2012-12-29 37 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