diff --git a/http_handler.go b/http_handler.go index 16e78a7..4051628 100644 --- a/http_handler.go +++ b/http_handler.go @@ -80,12 +80,24 @@ func FileServerWith404(root http.FileSystem, handler404 FSHandler404) http.Handl //see if it's directory info, e := f.Stat() - if e != nil || info.IsDir() { + if e != nil { if handledBy404Handler(handler404, w, r) { return } } + if info.IsDir() { + //do we have index.html? + f, err := root.Open(upath + "/index.html") + if err != nil { + //no we don't + if handledBy404Handler(handler404, w, r) { + return + } + } else { + f.Close() + } + } // default serve fs.ServeHTTP(w, r) })