Javascript – ERR_CONTENT_LENGTH_MISMATCH
我正在做一个基本的jQuery游乐场网站。 我得到错误: net::ERR_CONTENT_LENGTH_MISMATCH
正在页面加载和背景图像不加载页面上。
有问题的图像是300kb,也在dynamic变化。 我假设这与文件大小有关,但我真的不知道是什么。
原来使用的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"; }; }
我得到错误:net :: ERR_CONTENT_LENGTH_MISMATCH
看看你的服务器日志,以确定真正的问题是什么。
对于我来说,问题在nginx和文件权限之间:
-
tail -f /usr/local/var/log/nginx/error.log
或运行nginx -t
来确定您的conf位置,您可以在其中指定自定义日志path。 - 刷新浏览器中的资源,例如
http://localhost:3000/assets/jquery/jquery.js
您可能在日志中看到类似这样的内容:
当读取上游文件xyz时,“/ usr / local / var / run / nginx / proxy_temp / 9/04/0000000049”失败(13:Permission denied)
如何修复:
sudo nginx -s stop sudo rm -rf /usr/local/var/run/nginx/* sudo nginx
概要
这是对我的情况发生了更详细的解释。 在这里select的答案帮助我解决了我的问题,这基本上是所选答案的更详细的版本。
解释Nginx的权限
你可以运行nginx
作为nobody
用户,这是大多数示例configuration中的常见做法。 你会发现这行在你的configuration的顶部:
user nobody;
然而,build议您为web应用程序的静态内容(如css,js和图像文件)允许nginx访问并通过绕过您的web-app
容器。 这是你的configuration的一部分它读取:
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作为无人运行,但作为根运行获得访问您的静态文件夹。
解
在我的情况下,最好的解决scheme是改变nginx专用文件夹的权限以匹配我的静态文件夹。 然后运行nginx作为一个用户与正确的访问。
这是解决此问题的另一种方法: http : //derekneely.com/2009/06/nginx-failed-13-permission-denied-while-reading-upstream/
注意:从安全angular度来看,我不同意作者build议给文件夹777权限的链接。 给出完成工作所需的最低水平(在这种情况下,700应该没问题,甚至可以降低,尽pipe我还没有尝试)。
在构buildRails应用程序时,我遇到了同样的错误。 我用一个不同的图像replace了一个图像,并没有改变文件名,这引起了上面的错误。 简单地更改文件名称使问题消失。