ESP32 AsyncWebServer SPIFFS проблема со страницей загрузки

esp32 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>

, 👍2


1 ответ


Лучший ответ:

0

У меня нет ESP32 для тестирования. Тем не менее, я попытался заставить ваш код работать на ESP8266, но это небольшая попытка проверить то, что в конечном счете является диким предположением с моей стороны.

И вот что: возможно, у вас есть несколько прописных букв в вашем имени файла, так что "/image.png" не соответствует идеально, и, кроме того, возможно, SPIFFS чувствителен к регистру. То есть ваш файл может называться Image.png или IMAGE.png, и это может иметь значение.

ОБНОВЛЕНИЕ:

Изучая это на ESP8266, я забыл выполнить SPIFFS.begin(). И я не вижу аналога этому в вашем коде. По крайней мере, один пример ESPAsyncWebServer, который я видел, вызывает SPIFFS.begin()

Я обнаружил, что имена файлов чувствительны к регистру, опять же, по крайней мере, на ESP8266; так что это может быть источником проблем.

Также проверено, что если размер SPIFFS изменяется с помощью выбора в меню, мне действительно нужно было повторно загрузить изображение SPIFFS.

Я знаю, что это разные системы; на самом деле код, который я использую для тестирования, не компилируется для ESP32, но я подозреваю, что большая часть кода является общей, и поэтому, возможно, проблемы тоже есть.

,

Вот оно! Спасибо, что нашли время., @Marr Madden