fileserver: Share template logic for both templates and file_server browse (#4093)

Co-authored-by: Matthew Holt <mholt@users.noreply.github.com>
This commit is contained in:
Jason Du
2021-04-30 19:17:23 -07:00
committed by GitHub
parent 956f01163d
commit 637fd8f67b
8 changed files with 175 additions and 111 deletions

View File

@ -17,7 +17,6 @@ package fileserver
import (
"bytes"
"fmt"
"html/template"
weakrand "math/rand"
"mime"
"net/http"
@ -118,23 +117,6 @@ func (fsrv *FileServer) Provision(ctx caddy.Context) error {
fsrv.IndexNames = defaultIndexNames
}
if fsrv.Browse != nil {
var tpl *template.Template
var err error
if fsrv.Browse.TemplateFile != "" {
tpl, err = template.ParseFiles(fsrv.Browse.TemplateFile)
if err != nil {
return fmt.Errorf("parsing browse template file: %v", err)
}
} else {
tpl, err = template.New("default_listing").Parse(defaultBrowseTemplate)
if err != nil {
return fmt.Errorf("parsing default browse template: %v", err)
}
}
fsrv.Browse.template = tpl
}
// for hide paths that are static (i.e. no placeholders), we can transform them into
// absolute paths before the server starts for very slight performance improvement
for i, h := range fsrv.Hide {