From 1dc211afa7a034f61c3657c048fbe7db43ad7ba7 Mon Sep 17 00:00:00 2001 From: Matthias Hertel Date: Sat, 22 Jan 2022 21:15:25 +0100 Subject: [PATCH] Update RequestHandlersImpl.h With LittleFS the `fs.exists(path)` returns true also on folders. A `isDirectory()` call is required to set _isFile to false on directories. This enables serving all files from a folder like : `server->serveStatic("/", LittleFS, "/", cacheHeader.c_str()); File f = fs.open(path); _isFile = (f && (! f.isDirectory())); --- libraries/WebServer/src/detail/RequestHandlersImpl.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libraries/WebServer/src/detail/RequestHandlersImpl.h b/libraries/WebServer/src/detail/RequestHandlersImpl.h index 699015746b3..4a7c28e58ae 100644 --- a/libraries/WebServer/src/detail/RequestHandlersImpl.h +++ b/libraries/WebServer/src/detail/RequestHandlersImpl.h @@ -68,7 +68,8 @@ class StaticRequestHandler : public RequestHandler { , _path(path) , _cache_header(cache_header) { - _isFile = fs.exists(path); + File f = fs.open(path); + _isFile = (f && (! f.isDirectory())); log_v("StaticRequestHandler: path=%s uri=%s isFile=%d, cache_header=%s\r\n", path, uri, _isFile, cache_header ? cache_header : ""); // issue 5506 - cache_header can be nullptr _baseUriLength = _uri.length(); }