Evenetuell OT weil eher HTTP

Hallo,

ich habe auf einem Arduino einen kleine Webserver laufen.
Das klappt auch ganz gut bis auf eine Kleinigkeit.
Die Seite soll ein Image anzeigen.
Auf einigen Browsern klappt es (z.B. Opera oder Konqueror) im Firefox nicht auf jedem Computer
(d.h. auf einigen schon). Gehe ich mit der Maus auf’s Image und klicke Reload kommt das Image.
Auch bei “Image anzeigen” Klappt alles.

Ich denke das ist kein Arduino Problem sondern ich mache HTML-mäßig was falsch.

Das ist ein Teil der Stelle wo die gesammte Seite erstellt wird:

void HTML_LeadIn()
{
  server.print(F("HTTP/1.1 200 OK\r\n")); 
}

void HTML_Header(uint8_t bg)
{
  server.print(F("Server: arduino\r\nContent-Type: text/html\r\nConnection:close\r\n\r\n")); // Connection close hinzugefügt 27.03.2018
  server.print(F("<HTML><HEAD><META HTTP-EQUIV=\"Pragma\" CONTENT=\"no-cache\">"));
  
  // Refresh ist Käse
  // server.print(F("<META HTTP-EQUIV=\"Refresh\" CONTENT=\"910; url=http://aquarium.uklaas.de\">")); 
  server.println(F("<TITLE>Gabys AquaDino</TITLE>"));
  server.print(F("</HEAD><BODY TEXT=\"#FFFFFF\""));
  if (bg)
  {
    server.print(F("BGCOLOR=\"#FF0000\""));
  }
  else
  {
    server.print(F("BGCOLOR=\"#009988\""));
  }     
  server.println(F("LINK=\"#FFFF00\" VLINK=\"#0FF000\" ALINK=\"#FF0000\">"));
}

// Hier wird die Seite Aufgebaut 

void PageTextOut1()
{
  char buffer[50];
  
  HTML_LeadIn();
  HTML_Header();
  server.println(F("<center><table BORDER=8 BORDERCOLOR=\"#FFFFFF\" WIDTH=\"1000\" BGCOLOR=\"0066FF\">"));
  server.println(F("<TR><TD><H1><Center>GabyQuarium Webserver (HW2) 2.83</H1>"));
  server.print(F("</TD></TR>
<TR><TD><center><IMG SRC=\"fisch.jpg\" width=\"340\" height=\"250\"></center></TD></TR>"));
  server.print(F("
<TR><TD><h1>AquaDuino aktiv seit "));
  ShowUpTime(aktuellUpTime);
  server.print(F("Aktiv mit Reboots seit "));
  ShowUpTime(UpTime);
  server.print(F("Anzahl der Reboots : "));
  server.print(Config.AnzStarts - 1);
  server.print(F("
Boardzeit : "));
.
.
.

Da sieht man das IMG SRC drinn.
Im nächste Codestück sieht man was passiert wenn der Server den Pfad \fisch.jpg “sieht”.

//-----------------------------------------------
// Image 1 ausgeben
//-----------------------------------------------

void ImageOut1()
{
  uint8_t buffer[51];
  int ret;

  HTML_LeadIn();

  // Connection close hinzugefügt 27.03.2018
  // in der Hoffnung das das Image jetzt immer angezeigt wird
  
  server.print(F("Content-Type: image/jpeg\r\nConnection:close\r\n\r\n")); 
  myFile = SD.open(GetString(FISH_FILE),FILE_READ);
  while(myFile.available())
  {
    ret = myFile.read(buffer,50);
    server.write(buffer,ret);
  }
  myFile.close();
}

Ich denke das fehlt eine Kleinigkeit im HTML, aber ich bin anscheinend
zu doof mein Problem für Google zu formulieren.

Ulli

validiere mal dein HTML mit einem w3c Validator z.B. https://validator.w3.org/

doctype würde ich auf alle Fälle ergänzen.

Wenn du dann noch immer nicht weiterkommst, dann stell das HTML auch rein.

Was sagen die Firefox web developer tools dazu? generierst du für das img einen 404 oder was passiert?

Hallo,
erst mal danke für den Tip. Damit werde ich bestimmt weiter kommen.
Bin jetzt erst mal eine Woche offline. Melde mich wieder wenn ich Erkenntnisse habe.
Danke

Ulli