您具有
mux.CurrentRoute()返回给定请求的路由的方法。根据该请求,您可以创建一个子路由器并调用
Get("home")示例:(播放:http :
//play.golang.org/p/Lz10YUyP6e)
package mainimport ( "fmt" "net/http" "github.com/gorilla/mux")func HomeHandler(writer http.ResponseWriter, req *http.Request) { writer.WriteHeader(200) fmt.Fprintf(writer, "Home!!!n")}func AnotherHandler(writer http.ResponseWriter, req *http.Request) { url, err := mux.CurrentRoute(req).Subrouter().Get("home").URL() if err != nil { panic(err) } http.Redirect(writer, req, url.String(), 302)}func main() { r := mux.NewRouter() r.HandleFunc("/home", HomeHandler).Name("home") r.HandleFunc("/nothome/", AnotherHandler).Name("another") http.Handle("/", r) http.ListenAndServe(":8000", nil)}


