このエラーメッセージの意味と解決方法を教えてください。これは、Windows 7上のGoogle Chrome v33.0のコンソールからのものです。
リソースのロードに失敗しました:net :: ERR_CONTENT_LENGTH_MISMATCH http://and.img.url/here.png
JQueryを使用して画像のsrc
属性を変更しようとしています。たとえば、次のような(簡略化された):
$('.image-prld').attr('src', someDynamicValue);
ページには約30枚の画像があります。また、ページをリロードするたびに、ランダムな画像に対して上記のエラーが発生します。ただし、すべての画像でエラーなく正常に動作する場合もあります。
このエラーが発生すると、特定の画像が this のように表示されます。
ただし、新しいタブでエラーメッセージの横にあるリンクを開くと、画像が読み込まれます。これは、画像が有効で存在することを論理的に示しています。
このエラーは、HTTPヘッダーでアドバタイズされるデータと、回線を介して転送されるデータとの間の明確な不一致です。
それは次のものから来る可能性があります。
Server:サーバーに、コンテンツを変更するがヘッダーのcontent-lengthを更新しない、または更新しない特定のモジュールにバグがある場合正しく機能します。ある時点でNode HTTPプロキシがそうでした( here を参照)
Proxy:あなたとあなたのサーバーとの間のプロキシは、リクエストを変更し、コンテンツ長ヘッダーを更新しない可能性があります。
私の知る限り、これらの問題はIISにはありませんが、ほとんどがカスタム記述コードにあります。
それが役立つかどうか教えてください。
あなたの 広告ブロッカー が原因である可能性もあります。
それを無効にするか、画像の取得元のドメインに例外を追加してみてください。
私の状況では、問題はnginx docker container disk spaceでした。 10GBのログがあり、この量を減らすと機能します。
コンテナーに入力します:docker exec -it container_id bash。
ログに移動します(例:/ var/log/nginx)。
[オプション]ファイルサイズを表示:ls -lh
個々のファイルサイズまたはdu -h
フォルダーサイズ。
> file_name
の空のファイル。
できます!。
> file_name
などでnginxログを空にします。
希望する
これは、フルディスク(Ubuntu/Nginx)が原因である可能性があります。
私の状況:
私の場合、ヘッダーでアドバタイズしたContent-Lengthを誤って計算していました。ファイルのRange-Requestsを提供していましたが、誤ってContent-Lengthでファイルサイズを公開しました。
Content-Lengthをブラウザに送り返す実際の範囲に設定することで問題を修正しました。
したがって、通常のリクエストに応答する場合は、Content-Lengthをファイルサイズに設定します。範囲要求に応答する場合、Content-Lengthを要求された範囲の実際の長さに設定します。
私の場合、問題の原因はプロキシの問題(nginxからニスキャッシュへのプロキシ要求)でした。プロキシ定義に次を追加する必要がありました
proxy_set_header Connection keep-alive;
私はここで答えを見つけました: https://stackoverflow.com/a/55341260/1062129
私の場合、リクエストを変更して、ヘッダーを( Fiddler を使用して)https
リクエストに追加しましたが、 httpsトラフィックを復号化する に設定しませんでした