web-dev-qa-db-ja.com

リソースの読み込みに失敗しました:net :: ERR_CONTENT_LENGTH_MISMATCH

このエラーメッセージの意味と解決方法を教えてください。これは、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 のように表示されます。

enter image description here

ただし、新しいタブでエラーメッセージの横にあるリンクを開くと、画像が読み込まれます。これは、画像が有効で存在することを論理的に示しています。

39
user3332579

このエラーは、HTTPヘッダーでアドバタイズされるデータと、回線を介して転送されるデータとの間の明確な不一致です。

それは次のものから来る可能性があります。

  1. Server:サーバーに、コンテンツを変更するがヘッダーのcontent-lengthを更新しない、または更新しない特定のモジュールにバグがある場合正しく機能します。ある時点でNode HTTPプロキシがそうでした( here を参照)

  2. Proxy:あなたとあなたのサーバーとの間のプロキシは、リクエストを変更し、コンテンツ長ヘッダーを更新しない可能性があります。

私の知る限り、これらの問題はIISにはありませんが、ほとんどがカスタム記述コードにあります。

それが役立つかどうか教えてください。

30
Maxime Rouiller

あなたの 広告ブロッカー が原因である可能性もあります。

それを無効にするか、画像の取得元のドメインに例外を追加してみてください。

26
Joe Valeriana

Docker + nginx

私の状況では、問題はnginx docker container disk spaceでした。 10GBのログがあり、この量を減らすと機能します。

ステップバイステップ(ルーキー/初心者向け)

  1. コンテナーに入力します:docker exec -it container_id bash。

  2. ログに移動します(例:/ var/log/nginx)。

  3. [オプション]ファイルサイズを表示:ls -lh個々のファイルサイズまたはdu -hフォルダーサイズ。

  4. > file_nameの空のファイル。

  5. できます!。

上級開発者/システム管理者向け

> file_nameなどでnginxログを空にします。

希望する

20
mrroot5

これは、フルディスク(Ubuntu/Nginx)が原因である可能性があります。

私の状況:

  • nginxが静的ファイルを提供しているChromeでこのエラーが発生しました: ".../static/js/vendor.c4ed7962fb4a63ad3c3b.js net :: ERR_CONTENT_LENGTH_MISMATCH 200(OK)"
  • ルートディスクがいっぱいです。 tmpファイルをクリーニングした後、エラーは消えました。
  • 防止するために:ディスクがクリーンなままであることを確認します(次のようなスクリプトが役立ちます: https://crunchify.com/how-to-automatically-delete-tmp-folders-in-linux-automatic-disk- log-cleanup-bash-script /
1
vdB

私の場合、ヘッダーでアドバタイズしたContent-Lengthを誤って計算していました。ファイルのRange-Requestsを提供していましたが、誤ってContent-Lengthでファイルサイズを公開しました。

Content-Lengthをブラウザに送り返す実際の範囲に設定することで問題を修正しました。

したがって、通常のリクエストに応答する場合は、Content-Lengthをファイルサイズに設定します。範囲要求に応答する場合、Content-Lengthを要求された範囲の実際の長さに設定します。

0
Tobias Gassmann

私の場合、問題の原因はプロキシの問題(nginxからニスキャッシュへのプロキシ要求)でした。プロキシ定義に次を追加する必要がありました

        proxy_set_header Connection keep-alive; 

私はここで答えを見つけました: https://stackoverflow.com/a/55341260/1062129

0
George

私の場合、リクエストを変更して、ヘッダーを( Fiddler を使用して)httpsリクエストに追加しましたが、 httpsトラフィックを復号化する に設定しませんでした

0
The Red Pea