Je fais un site de base de jeux jQuery. Je reçois une erreur: net::ERR_CONTENT_LENGTH_MISMATCH
se produit au chargement de la page et les images d'arrière-plan ne se chargent pas sur la page.
L'image en question fait 300 Ko et change également de manière dynamique. 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 changer le fond:
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
Regardez les journaux de votre serveur pour déterminer quel est le véritable problème.
Pour moi, le problème se situait quelque part entre les autorisations de nginx et de fichier:
tail -f /usr/local/var/log/nginx/error.log
ou exécutez nginx -t
pour déterminer votre emplacement de configuration, où vous pouvez spécifier un chemin de journal personnalisé.http://localhost:3000/assets/jquery/jquery.js
Vous pouvez voir quelque chose comme ceci dans les journaux:
"/ usr/local/var/run/nginx/proxy_temp/9/04/0000000049" a échoué (13: Autorisation refusée) lors de la lecture en amont du fichier xyz
Heres comment j'ai fixé:
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. Il s'agit en gros d'une version plus détaillée de la réponse sélectionnée, comment et pourquoi!
Vous pouvez exécuter nginx
en tant qu'utilisateur nobody
et c'est la pratique courante dans la plupart des exemples de configuration. Vous trouverez cette ligne en haut de votre configuration:
user nobody;
Il est toutefois suggéré que, pour vos applications Web, les contenus statiques, tels que les fichiers css, js et les fichiers image, autorisent l’accès à nginx et le récupèrent 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 que nginx
doit avoir accès.
D'un autre côté, il existe un dossier dédié nginx
où, dans la réponse ci-dessus, le cas était:
/usr/local/var/run/nginx/
Dans mon cas (CentOS) c'était dans:
/var/lib/nginx/
Dans l'un ou l'autre cas, vous pouvez décomposer nginx
:
1- Nginx fonctionne comme personne mais n’a pas le droit d’accéder à votre dossier statique.
2- Nginx s’exécute comme personne mais s’exécute ensuite en tant que root pour accéder à votre dossier statique.
La meilleure solution dans mon cas était de changer l'autorisation du dossier dédié nginx afin qu'elle corresponde à mon dossier statique. Et puis exécutez nginx avec en tant qu'utilisateur ayant le droit d'accès aux deux.
Dans mon cas, j'utilisais nodemon server.js
dans une application next.js
(rendue côté serveur). En revenant à node server.js
, l'erreur a disparu.
J'ai eu la même erreur lors de la construction d'une application Rails. J'ai remplacé une image par une autre image sans changer le nom du fichier, ce qui a provoqué l'erreur ci-dessus. Changer simplement le nom du fichier a fait disparaître le problème.