问题描述
我正在做一个基本的 jquery 操场场。我收到错误:net::ERR_CONTENT_LENGTH_MISMATCH
发生在页面加载和背景图像没有加载在页面上。
所讨论的图像是 300kb,也是动态变化的。我假设这与文件大小有关,但我真的不知道什么。
原来使用的 HTML
<p style="margin:0px; padding:0px;"><img id="background" src="/bg1.jpg" style='width:100%;' border="0" alt="Null"></p>
javascript /jquery 用来改变背景:
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";
};
}
最佳解决思路
I am getting Error: 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
您可能会在日志中看到类似的内容:
“/usr/local/var/run/nginx/proxy_temp/9/04/0000000049” failed (13: Permission denied) while reading upstream for file xyz
谢谢我如何修复:
sudo nginx -s stop
sudo rm -rf /usr/local/var/run/nginx/*
sudo nginx
次佳解决思路
总结
这是对我的情况发生了什么的更详细的解释。在这里选择的答案帮助我解决了我的问题,这基本上是一个更详细的版本的选择答案关于如何和 whys!
解释 Nginx 权限
您可以将 nginx
作为 nobody
用户运行,这是大多数示例配置中的常见做法。您将在配置顶部找到此行:
user nobody;
但是建议对于您的 web-apps 静态内容,如 css,js 和图像文件,以允许 nginx 访问并通过绕过您的 web-app 容器来实现。这是你的配置的一部分:
location ^~ /static {
alias /path/to/your/static/folder/;
autoindex on;
expires max;
}
这是 nginx
需要访问的文件夹。
另一方面,有 nginx
专用文件夹,在上面的答案中有:
/usr/local/var/run/nginx/
在我的情况 (CentOS),它在:
/var/lib/nginx/
怎么会出错?
在任何一种情况下,您可以打破 nginx
:
1- Nginx 以任何人身份运行,但没有正确的访问您的静态文件夹。
2- Nginx 以无人身份运行,但以 root 身份运行,以访问您的静态文件夹。
解决方案
我最好的解决办法是改变 nginx 专用文件夹的权限,以匹配我的静态文件夹。然后运行 nginx 作为一个用户正确访问这两个。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。