diff options
-rw-r--r-- | router.go | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -86,9 +86,14 @@ func (r *Router) Mount(prefix string, subrouter *Router) { prefix = strings.TrimSuffix(prefix, "/") for _, subroute := range subrouter.tree.Routes() { - r.Route(path.Join(prefix, subroute.Pattern), subroute.Value) - if subroute.Pattern == "/" { + fullroute := path.Join(prefix, subroute.Pattern) + if strings.HasSuffix(subroute.Pattern, "/") { + fullroute = fullroute + "/" + } + r.Route(fullroute, subroute.Value) + if subroute.Pattern == "/" || subroute.Pattern == "" { r.Route(prefix, subroute.Value) + r.Route(prefix+"/", subroute.Value) } } } |