Go Gorilla Mux “match anything”路径模板

huangapple go评论78阅读模式
英文:

Go Gorilla Mux "match anything" path template

问题

创建一个简单的“匹配任何内容”处理程序的正确语法是什么?

mux.NewRouter().StrictSlash(true).Path("/")....

上述代码似乎严格匹配/,而/foo不会被匹配。

英文:

What is the proper syntax to create a simple "match anything" handler?

mux.NewRouter().StrictSlash(true).Path("/")....

The above code seems to strictly match / and /foo won't get matched

答案1

得分: 11

这应该可以工作:

router := mux.NewRouter().PathPrefix("/")
英文:

This should work:

router := mux.NewRouter().PathPrefix("/")

答案2

得分: 11

你可以使用mux.Route.HandlerFuncmux.Router.PathPrefix一起使用:

r := mux.NewRouter()

// 将/catalog/{id}路由到catalogHandler:
r.HandleFunc("/catalog/{id}", catalogHandler)

// 将其他所有路由到defaultHandler:
r.PathPrefix("/").HandlerFunc(defaultHandler)

请注意名称的差异(HandlerFuncHandleFunc)。

英文:

You can use mux.Route.HandlerFunc together with mux.Router.PathPrefix:

<!-- language: lang-golang -->

r := mux.NewRouter()

// route catalog to catalogHandler:
r.HandleFunc(&quot;/catalog/{id}&quot;, catalogHandler) 

// route everything else to defaultHandler:
r.PathPrefix(&quot;/&quot;).HandlerFunc(defaultHandler)

Note the difference in names (HandlerFunc vs HandleFunc).

huangapple
  • 本文由 发表于 2017年4月15日 02:31:50
  • 转载请务必保留本文链接:https://go.coder-hub.com/43417204.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定