我将其发布在golang-nuts讨论组上,并 从
ToniCárdenas获得了此解决方案 …
标准的net / http ServeMux(这是您在使用时使用的标准处理程序
http.Handle)和多路复用器路由器具有不同的地址匹配方式。
查看http://golang.org/pkg/net/http/#ServeMux和http://godoc.org/github.com/gorilla/mux之间的区别。
因此,基本上,
http.Handle('/images/', ...)匹配“ / images /
whatever”,而
myRouter.Handle('/images/', ...)仅 匹配“ / images /”,如果要处理“ /
images / whatever”,则必须…
选项1- 在路由器中使用正则表达式匹配
myRouter.Handle("/images/{rest}", http.StripPrefix("/images/", http.FileServer(http.Dir(HomeFolder + "images/"))))
选项2- 在路由器上使用PathPrefix方法:
myRouter.PathPrefix("/images/").Handler(http.StripPrefix("/images/", http.FileServer(http.Dir(HomeFolder + "images/"))))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)