Ich mache eine einfache Jquery-Playground-Site. Ich bekomme Fehler: net::ERR_CONTENT_LENGTH_MISMATCH passiert beim Laden der Seite und die Hintergrundbilder werden nicht auf die Seite geladen.
Das fragliche Bild ist 300 KB groß und ändert sich auch dynamisch. Ich gehe davon aus, dass dies etwas mit der Dateigröße zu tun hat, aber ich weiß nicht genau, was.
es ist alles inline. Die ursprüngliche HTML-Zeile lautet:
und dieses Bild wird jedoch überhaupt nicht geladen; Später im Lebenszyklus der Site wird es durch die Funktion i will edit in den ursprünglichen Beitrag geändert
– LiamHT
4. März 14 um 21:56 Uhr
Keine Notwendigkeit, das Bild als Problem für sich. Ich glaube, es ist beschädigt. whereslouis.com/bg1.jpg -> Probieren Sie es auf Chrome und Firefox aus, Sie können nicht das gesamte Bild anzeigen: „Das Bild“whereslouis.com/bg1.jpg” kann nicht angezeigt werden, da es Fehler enthält.”
– Guten Tag
4. März 14 um 21:57 Uhr
Das Bild wurde jetzt gut geladen: Ich gehe jedoch davon aus, dass dies auf das Caching zurückzuführen ist?
– LiamHT
4. März 14 um 21:59 Uhr
Nun, ich weiß nicht, wie ich das beheben soll, aber ich würde auf jeden Fall versuchen, es zurück zu exportieren. Vielleicht haben Sie die Datei als JPG “gespeichert”, aber ohne die Funktionen “Für Web und Geräte speichern” zu verwenden? Ich denke nicht, dass die Bildgröße zu groß ist, es muss eine beschädigte Datei sein, was hin und wieder passiert. Versuchen Sie es mit einem anderen Bild, nur um sicherzustellen, dass das, was ich sage, Sinn macht;)
– Guten Tag
6. März 14 um 18:59 Uhr
lfender6445
Ich erhalte den Fehler: net::ERR_CONTENT_LENGTH_MISMATCH
Sehen Sie sich Ihre Serverprotokolle an, um festzustellen, was das eigentliche Problem ist.
Bei mir lag das Problem irgendwo zwischen nginx und Dateiberechtigungen:
tail -f /usr/local/var/log/nginx/error.log oder laufe nginx -t um Ihren conf-Speicherort zu bestimmen, wo Sie einen benutzerdefinierten Protokollpfad angeben können.
Aktualisieren Sie das Asset in Ihrem Browser, z http://localhost:3000/assets/jquery/jquery.js
Möglicherweise sehen Sie in den Protokollen Folgendes:
„/usr/local/var/run/nginx/proxy_temp/9/04/0000000049“ fehlgeschlagen (13: Berechtigung verweigert) beim Lesen der Upstream-Datei xyz
Ich scheine keine zu haben /usr/local/var Verzeichnis, gibt es woanders diese Dateien?
– Hör auf, Monica Cellio zu verleumden
4. Mai ’15 um 20:00 Uhr
Lauf nginx -t um Ihre Konfigurationsdatei zu finden. Der Anfang Ihrer .conf-Datei sollte die Protokollausgabe angeben
– lfender6445
5. Mai 15 um 17:21 Uhr
Ah, das ist nur das Löschen von Protokollen? Ich war mir nicht sicher, was war invar/run/nginx/...
– Hör auf, Monica Cellio zu verleumden
5. Mai 15 um 17:36 Uhr
Hatte das gleiche Problem, stellte schließlich fest, dass /var/ voll war, musste einige Protokolle löschen
– Isch
22. Oktober 15 um 20:16 Uhr
AmirHd
Zusammenfassung
Hier ist eine detailliertere Erklärung dessen, was in meinem Fall passiert ist. Die hier ausgewählte Antwort hat mir geholfen, mein Problem zu lösen, und dies ist im Grunde eine detailliertere Version der ausgewählten Antwort zum Wie und Warum!
Erläuterung der Nginx-Berechtigungen
Du kannst rennen nginx Als ein nobody Benutzer und das ist die gängige Praxis in den meisten Beispielkonfigurationen. Sie finden diese Zeile oben in Ihrer Konfiguration:
user nobody;
Es wird jedoch empfohlen, dass statische Inhalte Ihrer Web-Apps, wie CSS-, JS- und Bilddateien, nginx-Zugriff erlauben und ihn durch Umgehung Ihrer Web-App einlösen
Container. Dies ist der Teil Ihrer Konfiguration, in dem es heißt:
Auf der anderen Seite gibt es nginx dedizierter Ordner, in dem sich der Fall der obigen Antwort befand:
/usr/local/var/run/nginx/
In meinem Fall (CentOS) war es in:
/var/lib/nginx/
Wie kann etwas schief gehen?
In beiden Fällen können Sie brechen nginx:
1- Nginx wird als Niemand ausgeführt, hat aber nicht den richtigen Zugriff auf Ihren statischen Ordner.
2- Nginx wird als Niemand ausgeführt, wird dann aber als Root ausgeführt, um Zugriff auf Ihren statischen Ordner zu erhalten.
Lösung
Die beste Lösung in meinem Fall war, die Berechtigung des nginx-dedizierten Ordners so zu ändern, dass sie mit meinem statischen Ordner übereinstimmt. Und führen Sie dann nginx with als Benutzer mit dem richtigen Zugriff auf beide aus.
Augusto Suza
Wenn Sie nginx + Proxy-Server verwenden, versuchen Sie Folgendes: proxy_buffering off;
In meinem Fall habe ich verwendet nodemon server.js in einem next.js (serverseitig gerenderte) App. Durch Zurückschalten auf node server.js, der Fehler ist verschwunden.
Mein Team hat dies in einer einzigen Javascript-Datei gesehen, die wir bereitgestellt haben. Alle anderen Dateien funktionierten einwandfrei. Wir haben ursprünglich gesehen net::ERR_HTTP2_PROTOCOL_ERROR. Wir wechselten von http2 zurück zu http1.1 und dann entweder net::ERR_INCOMPLETE_CHUNKED_ENCODING oder ERR_CONTENT_LENGTH_MISMATCH. Wir entdeckten schließlich, dass es einen Unternehmensfilter (Trustwave) gab, der fälschlicherweise ein „Infoleak“ erkannte (wir vermuten, dass er etwas in unserer Datei/Dateinamen entdeckte, das einer Sozialversicherungsnummer ähnelte). Das Unternehmen dazu zu bringen, diesen Filter zu optimieren, löste unsere Probleme.
duhaime
Ich hatte den gleichen Fehler beim Erstellen einer Rails-App. Ich habe ein Bild durch ein anderes Bild ersetzt und den Dateinamen nicht geändert, wodurch der obige Fehler ausgelöst wurde. Durch einfaches Ändern des Dateinamens verschwand das Problem.
Nett
Ein weiterer Fall, in dem dieser Fehler bei mir auftauchte: Beim Versuch, eine Datei von einem Node-Server mit Angular 7 herunterzuladen, musste ich mit umleiten window.location.href = <node_server_url> statt wie üblich httpClient.get<any>(<node_server_url>).
es ist alles inline. Die ursprüngliche HTML-Zeile lautet:
und dieses Bild wird jedoch überhaupt nicht geladen; Später im Lebenszyklus der Site wird es durch die Funktion i will edit in den ursprünglichen Beitrag geändert
– LiamHT
4. März 14 um 21:56 Uhr
Keine Notwendigkeit, das Bild als Problem für sich. Ich glaube, es ist beschädigt. whereslouis.com/bg1.jpg -> Probieren Sie es auf Chrome und Firefox aus, Sie können nicht das gesamte Bild anzeigen: „Das Bild“whereslouis.com/bg1.jpg” kann nicht angezeigt werden, da es Fehler enthält.”
– Guten Tag
4. März 14 um 21:57 Uhr
Das Bild wurde jetzt gut geladen: Ich gehe jedoch davon aus, dass dies auf das Caching zurückzuführen ist?
– LiamHT
4. März 14 um 21:59 Uhr
Nun, ich weiß nicht, wie ich das beheben soll, aber ich würde auf jeden Fall versuchen, es zurück zu exportieren. Vielleicht haben Sie die Datei als JPG “gespeichert”, aber ohne die Funktionen “Für Web und Geräte speichern” zu verwenden? Ich denke nicht, dass die Bildgröße zu groß ist, es muss eine beschädigte Datei sein, was hin und wieder passiert. Versuchen Sie es mit einem anderen Bild, nur um sicherzustellen, dass das, was ich sage, Sinn macht;)
– Guten Tag
6. März 14 um 18:59 Uhr