当我想要的url路径工作良好,有尾巴“/",和没有尾巴“/”
mux1 *mux.Router mux1.Handle("/example/", ...).Methods("GET")
我想这两个网址工程:https://host/api/example/和https://主机/应用程序接口/示例但是
mux1.Handle("/example/?", ...).Methods("GET")
不是工作。
vwoqyblh1#
在Go语言中使用mux.Handle定义路径时,指定的路径是完全匹配的,这意味着/example/和/example是不同的路径,需要分别为它们定义路径。实现这一点的一种方法是使用mux.PathPrefix方法匹配所有以/example开头的路径,然后使用mux.StripPrefix从URL中删除/example前缀,然后将其传递给处理程序。
mux.Handle
/example/
/example
mux.PathPrefix
mux.StripPrefix
mux := mux.NewRouter() mux.PathPrefix("/example").Handler(http.StripPrefix("/example", myHandler)) // ... http.ListenAndServe(":8080", mux)
1条答案
按热度按时间vwoqyblh1#
在Go语言中使用
mux.Handle
定义路径时,指定的路径是完全匹配的,这意味着/example/
和/example
是不同的路径,需要分别为它们定义路径。实现这一点的一种方法是使用
mux.PathPrefix
方法匹配所有以/example
开头的路径,然后使用mux.StripPrefix
从URL中删除/example前缀,然后将其传递给处理程序。