web-dev-qa-db-ja.com

net :: ERR_CONTENT_LENGTH_MISMATCHが原因でJavascriptがロードされない

ローカルで正常に動作するアプリを持っていますが、本番環境ではbarfsです。 (古典的な問題ですよね?)

実稼働環境では、JSは正しく起動していません。ブラウザコンソールを開くと、次のエラーが表示されます。

net::ERR_CONTENT_LENGTH_MISMATCH

開発者ツールの[ネットワーク]タブを見ると、text/htmlのGETリクエストで失敗したことが示されています。

不可解なエラーです。私は他に2つだけを見つけましたSO言及さえあり、それらは未解決です。(興味のある方へ: first post および 2番目のポスト

(1)それが何を意味するか、または(2)それを解決する方法はありますか?

33
Ben Downey

エラーが発生しています:net :: ERR_CONTENT_LENGTH_MISMATCH

実際の問​​題が何であるかを判断するには、サーバーのログを見てください。

私にとって、問題はnginxとファイルパーミッションの間のどこかにありました:

  • tail -f /usr/local/var/log/nginx/error.logまたはnginx -tを実行して、カスタムログパスを指定できるconfの場所を特定します。
  • ブラウザのアセットを更新します。例:http://localhost:3000/assets/jquery/jquery.js

ログに次のようなものが表示される場合があります。

ファイルxyzのアップストリームの読み取り中に「/ usr/local/var/run/nginx/proxy_temp/9/04/0000000049」が失敗しました(13:許可が拒否されました)

修正方法は次のとおりです。

Sudo nginx -s stop
Sudo rm -rf /usr/local/var/run/nginx/*
Sudo nginx
34
lfender6445

このバグレポート によると、外部リソースの長さが応答で指定されたContent-Lengthヘッダーと一致しない場合、このエラーが発生します。

これは、サーバーの構成が間違っているために発生する可能性があります。または(ストレッチとして)一部のBOM文字がファイルに挿入されるか、異なる行末(DOSマシンで作成してUNIXマシンに展開する)が問題を引き起こす可能性があります。

お役に立てれば。

6
omghaxzs

同様の問題がありました[crit] 6889#0:* 14817 open() "/ var/cache/nginx/proxy_temp/3/02/0000000023"が失敗しました(13:許可が拒否されました)

これは、Nginxワーカープロセスが/ var/cache/nginx/proxy_temp /フォルダーにアクセスできなかったためです-フォルダーのアクセス許可を変更しただけで、すべてが機能し始めました

1
JRomio

JSONの結果を解釈しようとすると、同様の問題が発生しました。行のどこかで奇妙なキャラクターがデータベースに登場しました。この例では、犯人は「?」でした。この値がデータベースにどのように到着したかは明らかではありませんが、おそらく HTMLエンコードの問題-"nbsp;"の代わりに "Â"文字が表示される に関係しています。問題は解決しました。

1
Gert