Je crée un site de base de jeu jquery. Je reçois une erreur: net::ERR_CONTENT_LENGTH_MISMATCH
se produit en charge de la page et les images d'arrière-plan ne sont pas chargées sur la page.
L'image en question est 300kb et change également dynamiquement. Je suppose que cela a quelque chose à voir avec la taille des fichiers, mais je ne sais pas vraiment quoi.
HTML utilisé à l'origine:
<p style="margin:0px; padding:0px;"><img id="background" src="/bg1.jpg" style='width:100%;' border="0" alt="Null"></p>
Javascript / jquery utilisé pour modifier l'arrière-plan:
var changebg = function() { if (myscore % 20 == 0) { level++; document.getElementById("level").innerHTML = "Level: " + level; $("#level").fadeIn(1500, function(){$("#level").hide()}) backgroundindex++; if (backgroundindex > 6) {backgroundindex == Math.floor((Math.random()*6)+1)}; document.getElementById("background").src="/bg"+backgroundindex+".jpg"; }; }
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é. 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
Voici une explication plus détaillée de ce qui s'est passé dans mon cas. La réponse sélectionnée ici m'a aidé à résoudre mon problème et il s'agit essentiellement d'une version plus détaillée de la réponse sélectionnée sur les wows et les paroles.
Vous pouvez exécuter nginx
tant qu'utilisateur nobody
et c'est la pratique courante dans la plupart des configurations d'exemples. Vous trouverez cette ligne en haut de votre configuration:
user nobody;
Il est cependant suggéré que, pour vos contenus statiques, tels que les fichiers css, js et image, pour permettre l'accès nginx et l'encaisser en contournant votre application Web
récipient. C'est la partie de votre configuration où il se lit:
location ^~ /static { alias /path/to/your/static/folder/; autoindex on; expires max; }
C'est le dossier nginx
doit avoir accès.
D'autre part, il existe un dossier dédié nginx
où dans le cas de la réponse ci-dessus:
/usr/local/var/run/nginx/
Dans mon cas (CentOS), c'était dans:
/var/lib/nginx/
Dans l'un de ces cas, vous pouvez casser nginx
:
1- Nginx fonctionne comme personne mais n'a pas le bon accès à votre dossier statique.
2- Nginx s'exécute en tant que personne, mais s'exécute en tant que root pour accéder à votre dossier statique.
La meilleure solution dans mon cas était de modifier l'autorisation du dossier dédié nginx pour correspondre à mon dossier statique. Ensuite, exécutez nginx avec un utilisateur avec un bon accès aux deux.
Voici une autre façon de résoudre ce problème: http://derekneely.com/2009/06/nginx-failed-13-permission-denied-while-reading-upstream/
REMARQUE: Du point de vue de la sécurité, je ne suis pas d'accord avec le lien où l'auteur suggère de donner 777 autorisations aux dossiers. Donnez le niveau minimum nécessaire pour effectuer le travail (dans ce cas, 700 devraient être bien, vous pourriez même baisser, même si je n'ai pas encore essayé).
J'ai eu la même erreur lors de la construction d'une application de rails. J'ai remplacé une image par une image différente et n'a pas changé le nom du fichier, qui a jeté l'erreur ci-dessus. Simplement changer le nom du fichier, le problème disparaît.