golang中http模块的路由
golang
中配置url的路由时,需要注意最后的/
,如果以/
结尾,标识包含子路径的所有url;否则,则是全路径匹配.
如下,如果需要路由图片文件夹,结尾则必须添加/
.
http.HandleFunc("/img/", FileServer(&fs))
下面是官方标准实现, http.server.go
// Does path match pattern?
func pathMatch(pattern, path string) bool {
if len(pattern) == 0 {
// should not happen
return false
}
n := len(pattern)
if pattern[n-1] != '/' {
return pattern == path
}
return len(path) >= n && path[0:n] == pattern
}