Golang:github/gorilla/mux 支持回归 URL 路径。

3

当我想要 URL 路径正常工作时,可以带有尾随的“/”,也可以不带有尾随的“/”。

mux1      *mux.Router

mux1.Handle("/example/", ...).Methods("GET")

我希望这两个URL都能正常工作:https://host/api/example/ 和 https://host/api/example。
但是,
mux1.Handle("/example/?", ...).Methods("GET")

不起作用。


请使用PathPrefix,如果需要,我可以编写一个演示。 - Para
1个回答

2
在Go中使用`mux.Handle`定义路由时,您指定的路径是一个精确匹配。这意味着`/example/`和`/example`是不同的路径,您需要分别为它们定义路由。
实现此目的的一种方法是使用`mux.PathPrefix`方法来匹配所有以`/example`开头的路径,然后使用`mux.StripPrefix`从URL中删除/example前缀,再将其传递给您的处理程序。以下是示例:
mux := mux.NewRouter()
mux.PathPrefix("/example").Handler(http.StripPrefix("/example", myHandler))

// ...

http.ListenAndServe(":8080", mux)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接