Bonjour,
Je travaille sur un projet de maquette constituée de 5 Arduino nano pilotant en autonomie des actions, reliés sur un ESP32 par I2C.
J'ai codé 7 pages HTML comportant des explications pour le public, sur chacune de ces pages un bouton permettant l'envoi d'un code spécifique aux arduino via l'ESP32.
ESP32 en mode wifi AP, avec Asyncwebserver.
Les pages HTML, le CSS, le Script et les png sont chargés dans le SPIFFS.
la page index.html est la page d’accueil sur laquelle on peut accéder aux autres pages par clic en HTML (nompage
si on ouvre l'ensemble dans un navigateur tout fonctionne parfaitement
lorsque je me connecte au réseau de l'ESP32 seule la page index s'affiche et les demandes d'affichage des autres pages restent muettes.
Etant novice en notion client/ serveur requêtes js auriez vous des solutions ou des exemples à me soumettre pour que l'ESP32 affiche les pages html demandées.
merci.
Salut,
pour chaque page potentiellement servie par ton serveur web tu dois avoir une portion de code ressemblant à :
server.on("/page.html", HTTP_GET, [](AsyncWebServerRequest *request){
request->send(LittleFS, "/page.html", String(), false, processor);
});
C'est valable aussi pour les fichiers non-html, par exemple :
server.on("/style.css", HTTP_GET, [](AsyncWebServerRequest *request){
request->send(LittleFS, "/style.css", "text/css");
});
server.on("/PoliceDeCaractere.ttf", HTTP_GET, [](AsyncWebServerRequest *request){
request->send(LittleFS, "/PoliceDeCaractere.ttf", "application/octet-stream");
});
J'avais posé la question il y a quelques temps mais je n'ai pas immédiatement essayé et je ne retrouve pas, mais il y a une méthode apparemment pour se passer de cette énumération exhaustive un peu pénible et « servir » tous les fichiers disponibles dans le fs.
Remarque : avec la méthode exhaustive il vaut mieux aussi servir le fichier index.html quand c'est la racine du site ou d'un répertoire qui est demandé :
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
request->send(LittleFS, "/index.html", String(), false, processor);
});
server.on("/index.html", HTTP_GET, [](AsyncWebServerRequest *request){
request->send(LittleFS, "/index.html", String(), false, processor);
});
Effectivement je n'avais pas mis les lignes de code pour toutes les pages et les images.
c'est fait et tout fonctionne parfaitement.
merci pour l'info
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.