Bilder können nicht geladen werden, net::ERR_CONTENT_LENGTH_MISMATCH

Lesezeit: 7 Minuten

Benutzer-Avatar
TWD

Problem

Wenn Sie eine Seite auf meiner Website laden, werden oft ein (oder mehrere) Bilder (JPG-Dateien, die ich aus Lightroom und/oder Photoshop gespeichert habe) nicht angezeigt. Es sieht stattdessen wie ein defekter Link aus (ALT-Beschreibung wird angezeigt), aber kein Bild. Hartes Neuladen des Browsers löst Problem (z. B. werden alle Bilder nach einem harten Neuladen korrekt geladen).

Fehlermeldung

Chrome zeigt eine „ERR_CONTENT_LENGTH_MISMATCH“-Warnung für alle Bilder an, die es nicht lädt. (Manchmal blinkt das Bild schnell, bevor es zu einem toten Bild wechselt.)

Konfiguration

Ausführen der neuesten Version von WordPress (4.2.2) auf einem gemeinsam genutzten Host. Die Website ist SSL (https), falls das wichtig ist. Bilder befinden sich in einem Bild-Upload-Ordner (nichts Komplexes wie Imagemagick usw.) auf dem Host.

Meine Fehlersuche

Ich habe das Problem von mehreren Standorten mit verschiedenen ISPs auf verschiedenen Computern (sowohl Mac als auch PC) und mit verschiedenen Browsern (Chrome und Safari) repliziert, von denen einige keine Werbeblocker verwenden.

Was ich versucht habe ist folgendes:

  • Ich habe den Host gefragt, ob es ein Problem auf der Serverseite gibt. Sie behaupten nein.
  • Ich habe versucht, die Datei functions.php zurückzusetzen. Keine Auswirkungen.
  • Ich habe alle Plugins deaktiviert. Keine Auswirkungen.
  • Ich habe den Meta-Zeichensatz als UTF-8 fest eingegeben. Keine Auswirkungen.
  • Überprüft, ob ich Gzip verwende. Ich bin nicht.
  • Aktiviertes WordPress-Cache-Plugin. Keine Auswirkungen.
  • .htaccess von allen unnötigen Weiterleitungen und Befehlen gelöscht. Keine Auswirkungen.
  • Die Ordner wp-admin und wp-includes wurden von der Neuinstallation ersetzt. Keine Auswirkungen.
  • WordPress gelöscht und aus einem Backup neu installiert. Kein Würfel.
  • Ich habe den Quellcode von Seiten, die dieses Problem haben, in eine test.html-Datei eingefügt, und die Bilder scheinen dabei gut geladen zu werden.

Meine Gedanken & Fragen

Die Bilder sind jeweils 100-200 KB groß und manchmal gibt es eine ganze Menge davon auf der Seite. Gibt es eine Zeitüberschreitung und wenn ich hart neu lade, wird alles angezeigt, weil die Zeitüberschreitung nicht ausgelöst wurde? Das ist die beste zufällige Vermutung, die ich sammeln kann, ohne das Problem perfekt zu verstehen.

Irgendwelche Ideen von Dingen, die ich ausprobieren kann? Soll ich die gesamte Datenbank löschen und neu starten? Alles, was ich über Computer weiß, habe ich mir selbst beigebracht, und Serverprobleme sind keine meiner Stärken. Auch wenn Sie nicht wissen, was es sein könnte, könnte jemand erklären, was eine Nichtübereinstimmung der Inhaltslänge im Allgemeinen ist?

Vielen Dank!

  • Sind die Bilder in der Datenbank oder im Webordner? was meinst du mit “Hard reload löst”

    – Juan Carlos Oropeza

    11. Juli 2015 um 19:56 Uhr

  • @JuanCarlosOropeza Die Bilder werden in einen Webordner hochgeladen. (Sie werden über den WordPress-Medien-Uploader hochgeladen, aber Sie können die eigentlichen JPG-Dateien im Upload-Ordner sehen, wenn Sie ihn durchsuchen). Der Link zum Bild ist ein direkter Link zur JPG-Datei in diesem Upload-Ordner. Was das harte Neuladen betrifft, meine ich, dass alle Bilder angezeigt werden, wenn ich die Seite neu lade (Strg + Neuladen in Chrome).

    – TWD

    11. Juli 2015 um 19:58 Uhr


  • Weil Sie das Bild laden könnten, liegt das Problem möglicherweise am WordPress-Projekt. Ich schlage vor, versuchen Sie, mit einer neuen WordPress zu beginnen, etwas Einfaches zu tun und mit dem Aufbau zu beginnen. Auch ein weiterer Versuch im Browser … verwenden Sie die Konsole und deaktivieren Sie den Cache. Auf diese Weise sucht der Browser jedes Mal nach der URL.

    – Juan Carlos Oropeza

    12. Juli 2015 um 0:24 Uhr

  • Sie haben bereits Ihre eigene Frage beantwortet, wenn Sie die Seite neu laden (ich bin mir nicht sicher, was Sie mit CRTL + f5 hart neu laden meinen?), Der Browser-Cache dient den Bildern. Es ist entweder der Browser oder der Server, der das Zeitlimit überschreitet. Versuchen Sie, die Größe der Bilder zu ändern und mit tinypng zu optimieren, wenn Sie viele davon benötigen, oder laden Sie sie mit js, wenn sie sichtbar werden, usw. Aber ein 200-KB-Bild ist wahrscheinlich zu viel des Guten.

    – David

    12. Juli 2015 um 3:56 Uhr

  • Sie funktionieren immer, wenn sie statisch eingefügt werden? Überprüfen Sie die URL, ich hatte zuvor Probleme mit Timthumb, PHP hätte nichts damit zu tun, alles, was es tut, ist, die URL zu wiederholen.

    – David

    12. Juli 2015 um 22:46 Uhr

Wenn Sie Daten von einem Webserver anfordern, antwortet dieser zunächst mit einigen Informationen zu den Daten (HTTP-Header) und dann mit den Daten. Eine dieser Informationen, ein HTTP-Header, wird aufgerufen Content-Length. Es teilt dem Client mit, wie viele Daten er vom Server zu erwarten hat. Wenn Ihr Browser ein Bild erhält, ist die Antwort des Servers (sieht sehr vereinfacht so aus)

Content-Length: 100000

< the image, 100000 bytes of data >

Der Client weiß, dass die Anfrage abgeschlossen ist, wenn er die von angegebene Datenmenge erhalten hat Content-Length. Bis es in diesem Fall 100 KB (100000 Bytes) erhält, betrachtet es das Bild beispielsweise als nicht fertig geladen.

Wenn Der Server bricht die Anfrage ab, bevor der Client die Daten vom Server erhält, oder wenn der Client mehr Daten empfängt, als er empfangen hat, gibt der Client eine Art Fehler aus und geht davon aus, dass die Daten beschädigt/unbrauchbar sind, und entsorgt sie. Wie dies gehandhabt wird, kann je nach Browser variieren.

Wie haben Sie die Bilder auf Ihre Website hochgeladen? Ich selbst bin auf dieses Problem in einer Situation gestoßen, in der die Datei soll Größe wurde in der Datenbank gespeichert, und diese wurde verwendet, um die festzulegen Content-Length Header. Die Dateigröße in der DB war für die Datei nicht korrekt. JEDOCH, Ich weiß, dass WordPress das tut nicht Dateigrößen in der Datenbank speichern; Medien-Uploads werden einfach durch eine URL dargestellt.

Dies kann auch passieren, wenn dem Webserver die Ressourcen ausgehen und Ihre Anforderungen nicht mehr erfüllt werden können; Sie sagten, Sie hätten viele Bilder pro Seite. Wenn Sie einen wirklich miesen Shared-Hosting-Plan haben, kann es sein, dass der Host Grenzen setzt oder dass der Server einfach nicht den Datenverkehr aller von ihm gehosteten Websites bewältigen kann.

  • Ich danke dir sehr. Das ist eine sehr klare Zusammenfassung. Das „Warum“ zu verstehen ist immer so hilfreich. Ich werde in den Host-Winkel schauen.

    – TWD

    12. Juli 2015 um 13:45 Uhr


  • Ich habe eine fehlgeschlagene Anfrage und eine erfolgreiche Anfrage (mit TripHash-2001-3255-Seoul-Fish-Market.jpg zum Beispiel): Ich bekomme a Content-Length: 217045 in beiden Fällen. Bei der fehlgeschlagenen Anfrage bekomme ich nur die ersten 96kB des Bildes, bei der erfolgreichen Anfrage bekomme ich alle 212kB. Ich habe das Problem mit Firefox und Chrome reproduziert. Ich weiß immer noch nicht, was das Problem auslöst.

    – David Duponchel

    13. Juli 2015 um 8:29 Uhr

  • Danke @DavidDuponchel. Derzeit werden serverseitige Komprimierungseinstellungen untersucht. Das verwirrt mich schon seit einiger Zeit. Es ist hilfreich zu wissen, dass Sie es in Firefox haben. Da es sich auf Gecko, Webkit und Blink auswirkt, denke ich, dass auch Browser-Engine-Fehler ausgegeben werden können.

    – TWD

    13. Juli 2015 um 14:22 Uhr

  • lob für die knappe erklärung. Herzlichen Dank

    – Verzweifelt

    21. Dezember 2020 um 15:27 Uhr

Ich wollte darauf zurückkommen, falls jemand anderes dieses Problem hat. Es scheint, dass es eine Art Störung zwischen HTTPS und dem Abrufen von Bildern gibt, die das Problem verursacht hat. Obwohl ich nicht verstehe, WARUM das heißt, habe ich meine Website von SSL/HTTPS auf einfaches HTTP konvertiert (was ich tun konnte, da es keine Verschlüsselung erfordert) und es scheint, dass alle Bilder so geladen werden, wie sie sollten.

Wenn jemand das “Warum” versteht, würde ich gerne verstehen, worum es eigentlich geht. Zum Glück konnte ich mir einen Workaround einfallen lassen. Obwohl dies meine Frage nicht beantwortet, bietet es einen Kontext dafür, was das Problem verursacht, und meine vernünftige Problemumgehung.

Benutzer-Avatar
Dominik Cerisano

Dieses Problem kann bei einem gemeinsam genutzten Hosting-Dienst auftreten. Freie Bandbreite ist wie Redefreiheit, kein Freibier. Ressourcenausfallrichtlinien werden während Datenverkehrsspitzen aufgerufen.

Eine verteilte Systemarchitektur löst dies durch Einfügen einer Front-End-CDN-Schicht (z. B. CloudFlare). CDNs cachen Ihre statischen Ressourcen und können die Belastung Ihres Hosts erheblich reduzieren. Tatsächlich kann der Host für vollständig statische Sites heruntergefahren werden.

Es gibt noch weitere Vorteile von CDNs, wie Angriffserkennung, kostenloses SSL (kein Bier) und insgesamt verbesserte Leistung und Sicherheit im Vergleich zu Shared Hosting allein.

Viele CDNs sind kostenlos (wie in der Sprache). Sie könnten auch auf privates Hosting upgraden, aber $ und Sie möchten vielleicht immer noch eine Front-End-Stufe.

1372180cookie-checkBilder können nicht geladen werden, net::ERR_CONTENT_LENGTH_MISMATCH

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy