Ich habe hier nochmal ein möglichst simples Beispiel gebastelt, bei dem ebenfalls das Problem auftritt.
In den Weiten des WWWs habe ich eine ähnliche Fragestellung gefunden, bei der die Lösung war, dass auch ein Header mit Content-Length und Conten-Type sowie ein "Connection Close" befehl gesendet werden müssten.
Dies wird in diesem Code aber von der Funktion "server.stream" erledigt, oder irre ich mich da ?
Hier mal das leicht verändertes "ESP8266 Webserver BeispieL", mit einer internetseite, die 2 Scripte und 2 css Dateien für Jquery laden sollte:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include "FS.h"
ESP8266WebServer server(80);
const char* ssid = "meinWlan";
const char* password = "meinWLanPW";
//Anfang automatischer File-Handler
bool loadFromSpiffs(String path) {
String dataType = "text/plain";
if (path.endsWith("/")) path += "index.htm";
if (path.endsWith(".src")) path = path.substring(0, path.lastIndexOf("."));
else if (path.endsWith(".html")) dataType = "text/html";
else if (path.endsWith(".css")) dataType = "text/css";
else if (path.endsWith(".js")) dataType = "application/javascript";
else if (path.endsWith(".png")) dataType = "image/png";
else if (path.endsWith(".gif")) dataType = "image/gif";
else if (path.endsWith(".jpg")) dataType = "image/jpeg";
else if (path.endsWith(".ico")) dataType = "image/x-icon";
else if (path.endsWith(".xml")) dataType = "text/xml";
else if (path.endsWith(".pdf")) dataType = "application/pdf";
else if (path.endsWith(".zip")) dataType = "application/zip";
File dataFile = SPIFFS.open(path.c_str(), "r");
if (server.hasArg("download")) dataType = "application/octet-stream";
if (server.streamFile(dataFile, dataType) != dataFile.size()) {
}
if (!dataFile) {
dataFile.close();
yield();
return false;
}
else{
dataFile.close();
yield();
return true;
}
}
//Ende automatischer File-Handler
void handleRoot() {
Serial.println("Htmldatei requestet");
loadFromSpiffs("/index.html");
yield();
Serial.println("indexDatei übertragen");
//server.send(200, "text/plain", "okiDoki");
yield();
}
void jpgLoader(String bildname) {
bildname="/"+bildname;
if (loadFromSpiffs(bildname)) {
yield();
delay(20);
server.send(200, "text/plain", "Bild gefunden");
Serial.println("Bild "+bildname+" ist da");
yield();
}
else {
server.send(404, "text/plain", "keine solche Datei gefunden");
Serial.println("Bild "+bildname+" nicht gefunden");
}
delay(2);
Serial.println("ende JPGLoader");
};
void css1() {
if (loadFromSpiffs("/src/css/jqueryMS.css")) {
Serial.println("css1");
yield();
}
else {
Serial.println("css1 negativ");
yield();
}
};
void css2() {
if (loadFromSpiffs("/src/css/jqueryMobileTheme.css")) {
Serial.println("css2");
yield();
}
else {
Serial.println("css2 negativ");
}
};
void lib1() {
if (loadFromSpiffs("/lib/jquery164.js")) {
Serial.println("lib1");
yield();
}
else {
Serial.println("css2 negativ");
}
};
void lib2() {
if (loadFromSpiffs("lib/jqueryMob.js")) {
Serial.println("lib2");
yield();
}
else {
Serial.println("css2 negativ");
}
};
void formatierung(){
Serial.println("Formatting SPIFFS:");
while(!SPIFFS.format()){
};
Serial.println("FORMATIERUNG ERFOLGREICH BEENDET");
}
void handleNotFound() {
String message = "File Not Found\n\n";
message += "URI: ";
message += server.uri();
message += "\nMethod: ";
message += (server.method() == HTTP_GET) ? "GET" : "POST";
message += "\nArguments: ";
message += server.args();
message += "\n";
for (uint8_t i = 0; i < server.args(); i++) {
message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
}
server.send(404, "text/plain", message);
}
void setup(void) {
Serial.begin(115200);
SPIFFS.begin();
WiFi.begin(ssid, password);
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
if (MDNS.begin("esp8266")) {
Serial.println("MDNS responder started");
}
// server.on("/diag", HTTP_GET,diags);
server.on("/", handleRoot);
server.on("/inline", []() {
server.send(200, "text/plain", "this works as well");
});
server.on("/src/css/jqueryMobileTheme.css", css2);
server.on("/src/css/jqueryMS.css", css1);
server.on("/lib/jquery164.js", lib1);
server.on("lib/jqueryMob.js", lib2);
server.onNotFound(handleNotFound);
server.begin();
Serial.println("HTTP server started");
}
void loop(void) {
server.handleClient();
}
Es dauert ~60 Sekunden bis die Seite da ist.
Ich bin mir ziemlich sicher, dass ich irgendwo vergesse etwas an den Websiteaufrufenden Client (in meinem Fall der Firefox) zu schicken, um die Verbindung abzuschließen und damit das Ganze zu beschleunigen.
Das SketchArchiv habe ich ebenfalls angehängt.
Hat jemand Ideen ?? Findet jemand den Fehler ? Ich bin leider mit meinem Latein am Ende 
BeispielFehlersuche-161217b.zip (163 KB)