Обобщить маршрутизацию веб-сервера
Я следую примерам для ESP32:
AsyncWebServer _server(80);
_server.on("/", HTTP_GET, [](AsyncWebServerRequest *request)
{
request->send(SPIFFS, "/index.html", String(), false);
});
_server.on("/css/index.css", HTTP_GET, [](AsyncWebServerRequest *request){
request->send(SPIFFS, "/css/index.css", "text/css");
});
_server.onNotFound([](AsyncWebServerRequest *request){
request->send(404);
});
_server.begin();
При таком подходе я должен заранее знать каждый файл, который я храню в SPIFFS
, и добавлять обработчик для каждого из них.
Есть ли более элегантный способ автоматического обслуживания любого файла, существующего во флэш-памяти?
@Mark, 👍1
1 ответ
Лучший ответ:
▲ 3
Вы можете указать веб-серверу обслуживать статический контент из определенной папки:
server.serveStatic("/", SPIFFS, "/").setDefaultFile("index.html");
В этом случае он обслуживает по корневому URL-адресу содержимое из корня SPIFFS. Итак, если я размещу файл с именем image.jpg
в корне СПЕЦИЙ он будет подаваться по адресу /image.jpg
.
Для получения дополнительной информации вы можете обратиться к соответствующему разделу файла libraries Readme.
,
@chrisl
Смотрите также:
- ESP32 в Arduino-IDE с FS.h и SPIFFS
- Почему функция server.on() из "ESPAsyncWebServer.h" выполняется на стороне setup(), а не на стороне loop()?
- Интернет-сервер Arduino IDE + ESP32 — как перенаправить на root после нажатия кнопки
- Автоматическая веб-страница ESP32 AP
- Точка доступа ESP32 и веб сервер HTTP, как отправить несколько параметров?
- Arduino uno R4 против платы разработчика ESP32
- Как установить RTC в ES32 с помощью NTP-сервера?
- EspAsyncWebServer обрабатывает HTTPS в HTTP
Что на самом деле означает
статический
в данном конкретном контексте?, @MarkВ данном случае это означает файлы, которые помещаются в SPIFFS (он же flash). Эти файлы, конечно, также могут быть записаны и, таким образом, предоставлять более динамичный контент. Но тогда вам следует иметь в виду ограниченные циклы записи флэш-памяти. Таким образом, он в основном предназначен для статических (не изменяющихся) файлов вашего сайта, но также может использоваться для обслуживания изменяющихся файлов. В одном из моих проектов я использую его для обработки файла журнала относительно редких событий, @chrisl