ESP32 AsyncWebServer SPIFFS проблема со страницей загрузки
Я могу загрузить документы spiff, но я получаю 404. Беспроводная связь работает, IP-адресация работает, и я могу успешно загружать другие примеры. Эта простая загрузка изображений ino вызывает у меня приступы раздражения!
#include <WiFi.h>
#include <AsyncTCP.h>
#include <SPIFFS.h>
#include <ESPAsyncWebServer.h>
const char *ssid = "x";
const char *password = "123456789";
IPAddress staticIP(10,0,0,1); // ОСОБЕННО статический ip-адрес
IPAddress gateway(0,0,0,0); //IP-адрес вашего WiFi-маршрутизатора (шлюза)
IPAddress subnet(255, 255, 255, 0); // Маска подсети
AsyncWebServer server(80);
void setup() {
Serial.begin(115200);
WiFi.softAP(ssid, password);
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request)
{request->send(SPIFFS, "/index.htm", "text/html");});
server.on("/image.png", HTTP_GET, [](AsyncWebServerRequest *request)
{request->send(SPIFFS, "/image.png", "image/png");});
server.begin();
}//ОКОНЧАТЕЛЬНАЯ настройка
void loop()
{
}
<!DOCTYPE HTML>
<html>
<head>
<meta charset='UTF-8'>
</head>
<body>
<img src="image.png" alt=" image goes here">
</body>
</html>
@Marr Madden, 👍2
1 ответ
Лучший ответ:
У меня нет ESP32 для тестирования. Тем не менее, я попытался заставить ваш код работать на ESP8266, но это небольшая попытка проверить то, что в конечном счете является диким предположением с моей стороны.
И вот что: возможно, у вас есть несколько прописных букв в вашем имени файла, так что "/image.png"
не соответствует идеально, и, кроме того, возможно, SPIFFS чувствителен к регистру. То есть ваш файл может называться Image.png или IMAGE.png, и это может иметь значение.
ОБНОВЛЕНИЕ:
Изучая это на ESP8266, я забыл выполнить SPIFFS.begin()
. И я не вижу аналога этому в вашем коде.
По крайней мере, один пример ESPAsyncWebServer, который я видел, вызывает SPIFFS.begin()
Я обнаружил, что имена файлов чувствительны к регистру, опять же, по крайней мере, на ESP8266; так что это может быть источником проблем.
Также проверено, что если размер SPIFFS изменяется с помощью выбора в меню, мне действительно нужно было повторно загрузить изображение SPIFFS.
Я знаю, что это разные системы; на самом деле код, который я использую для тестирования, не компилируется для ESP32, но я подозреваю, что большая часть кода является общей, и поэтому, возможно, проблемы тоже есть.
- Загрузка данных SPIFFS в Arduino IDE 2.0.0-rc3 (ESP32 & TTGO) - Ubuntu
- Как записать и прочитать из файла SPIFFS как данные объекта на ESP8266
- ESP32 - ошибка при использовании LITTLEFS.h после обновления ядра до 2.0.4
- ESP-32 Загрузка файлов в SPIFFS через браузер
- ESPTOOL не распознает чип ESP32-S2 для передачи спайфов
- ESP32 AsyncWebServer с softAP не обслуживает страницы
- Как установить приложение + его конфигурацию на множество однотипных устройств? (ESP32)
- Отправка wav файла на ESP32 на сервер flask
Вот оно! Спасибо, что нашли время., @Marr Madden