summaryrefslogtreecommitdiff
path: root/gopher/gophermap/extended.go
diff options
context:
space:
mode:
Diffstat (limited to 'gopher/gophermap/extended.go')
-rw-r--r--gopher/gophermap/extended.go9
1 files changed, 7 insertions, 2 deletions
diff --git a/gopher/gophermap/extended.go b/gopher/gophermap/extended.go
index f2ca3fc..910adc0 100644
--- a/gopher/gophermap/extended.go
+++ b/gopher/gophermap/extended.go
@@ -307,7 +307,7 @@ func ExtendMiddleware(fsroot, urlroot string, settings *FileSystemSettings) sr.M
return sr.HandlerFunc(func(ctx context.Context, request *sr.Request) *sr.Response {
response := handler.Handle(ctx, request)
- if !settings.ParseExtended || response.Status != gopher.MenuType {
+ if settings == nil || response == nil || !settings.ParseExtended || response.Status != gopher.MenuType {
return response
}
@@ -322,7 +322,12 @@ func ExtendMiddleware(fsroot, urlroot string, settings *FileSystemSettings) sr.M
fpath = strings.Trim(fpath, "/")
fpath = filepath.Join(fsroot, fpath)
- doc, _, err := edoc.Compatible(filepath.Dir(fpath), *settings)
+ cwd := fpath
+ if !strings.HasSuffix(request.Path, "/") {
+ cwd = filepath.Dir(cwd)
+ }
+
+ doc, _, err := edoc.Compatible(cwd, *settings)
if err != nil {
return gopher.Error(err).Response()
}