Javascript n'est pas chargé en raison du net :: ERR_CONTENT_LENGTH_MISMATCH

J'ai une application qui fonctionne bien localement, mais des barfs en production. (Problème classique, non?)

En production, le JS ne lance pas correctement. Lorsque j'ouvre la console du navigateur, je vois cette erreur:

net::ERR_CONTENT_LENGTH_MISMATCH

Lorsque je regarde dans l'onglet réseau des outils de développement, cela montre qu'il a échoué sur une requête GET pour le texte / html.

C'est une erreur cryptique. Je n'ai trouvé que deux autres messages de SO, même mentionnés, et ils ne sont pas résolus. (Pour les intéressés: première publication et deuxième publication )

Une idée (1) de ce que cela signifie ou (2) comment le résoudre?

Je reçois une erreur: net :: ERR_CONTENT_LENGTH_MISMATCH

Jetez un oeil à vos journaux du serveur pour déterminer quel est le problème réel.

Pour moi, le problème se situe entre le nginx et les autorisations de fichier:

  • tail -f /usr/local/var/log/nginx/error.log ou exécutez nginx -t pour déterminer votre emplacement conf, où vous pouvez spécifier un chemin de journal personnalisé.
  • Actualisez l'actif dans votre navigateur, p.ex. http://localhost:3000/assets/jquery/jquery.js

Vous pouvez voir quelque chose comme ça dans les journaux:

"/ Usr / local / var / run / nginx / proxy_temp / 9/04/0000000049" a échoué (13: Autorisation refusée) pendant la lecture en amont pour le fichier xyz

Voici comment j'ai réparé:

 sudo nginx -s stop sudo rm -rf /usr/local/var/run/nginx/* sudo nginx 

Selon ce rapport de bogue , cette erreur se produit lorsqu'une longueur de ressource externe ne correspond pas à l'en-tête Content-Length donné dans la réponse.

Cela peut se produire en raison d'un serveur mal configuré ou (comme un étirement) peut-être que certains caractères de nomenclature ont été mis dans le fichier, ou peut-être même des terminaisons de lignes différentes (écrivez-vous sur une machine DOS et déployez-vous dans une machine UNIX?) Peut causer des problèmes .

J'espère que cela t'aides.

J'ai eu un problème similaire lorsqu'on tente d'interpréter les résultats de JSON. Il s'est avéré que, quelque part le long de la ligne, un personnage étrange a atterri dans la base de données – dans ce cas, le coupable était "â ??". Il n'est pas clair comment cette valeur est arrivée dans la base de données, mais elle est probablement liée aux problèmes d'encodage HTML – "Â" apparaître au lieu de "& nbsp;" Quoi qu'il en soit, après avoir supprimé les caractères impairs, le problème a été résolu.

J'ai eu un problème similaire [crit] 6889 # 0: * 14817 open () "/ var / cache / nginx / proxy_temp / 3/02/0000000023" (13: Autorisation refusée) pendant la lecture en amont

C'est parce que le processus de travail de Nginx n'a pas pu accéder au dossier / var / cache / nginx / proxy_temp / – Je viens de modifier les autorisations des dossiers et tout a commencé à fonctionner