mirror of
https://github.com/caddyserver/caddy.git
synced 2025-10-19 15:53:17 +00:00
fileserver: browse: do not encode the paths in breadcrumbs and page title (#4410)
This commit is contained in:
parent
c8b5a81607
commit
1e10f6f725
2 changed files with 19 additions and 3 deletions
|
@ -77,9 +77,9 @@ func (fsrv *FileServer) directoryListing(files []os.FileInfo, canGoUp bool, root
|
|||
Mode: f.Mode(),
|
||||
})
|
||||
}
|
||||
|
||||
name, _ := url.PathUnescape(urlPath)
|
||||
return browseTemplateContext{
|
||||
Name: path.Base(urlPath),
|
||||
Name: path.Base(name),
|
||||
Path: urlPath,
|
||||
CanGoUp: canGoUp,
|
||||
Items: fileInfos,
|
||||
|
@ -133,13 +133,16 @@ func (l browseTemplateContext) Breadcrumbs() []crumb {
|
|||
if lpath[len(lpath)-1] == '/' {
|
||||
lpath = lpath[:len(lpath)-1]
|
||||
}
|
||||
|
||||
parts := strings.Split(lpath, "/")
|
||||
result := make([]crumb, len(parts))
|
||||
for i, p := range parts {
|
||||
if i == 0 && p == "" {
|
||||
p = "/"
|
||||
}
|
||||
// the directory name could include an encoded slash in its path,
|
||||
// so the item name should be unescaped in the loop rather than unescaping the
|
||||
// entire path outside the loop.
|
||||
p, _ = url.PathUnescape(p)
|
||||
lnk := strings.Repeat("../", len(parts)-i-1)
|
||||
result[i] = crumb{Link: lnk, Text: p}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue