我正在制作一个基本的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";
};
}
答案 0 :(得分:49)
我收到错误:net :: ERR_CONTENT_LENGTH_MISMATCH
查看服务器日志以确定真正的问题。
对我来说,问题在于nginx和文件权限:
tail -f /usr/local/var/log/nginx/error.log
或运行nginx -t
以确定您的配置位置,您可以在其中指定自定义日志路径。http://localhost:3000/assets/jquery/jquery.js
您可能会在日志中看到类似的内容:
&#34;在/ usr /本地的/ var /运行/ nginx的/ proxy_temp那/ 9/04/0000000049&#34;失败了(13: 读取上游文件xyz时的权限被拒绝
我是如何修理的:
sudo nginx -s stop
sudo rm -rf /usr/local/var/run/nginx/*
sudo nginx
答案 1 :(得分:7)
以下是对我案件中发生的事情的更详细解释。这里选择的答案帮助我解决了我的问题,这基本上是一个更详细的选择答案的方法和原因!
您可以nginx
作为nobody
用户运行,这是大多数示例配置中的常见做法。您会在配置顶部找到此行:
user nobody;
但建议您的网络应用程序静态内容(如css,js和图像文件)允许nginx访问并通过绕过您的网络应用程序兑现 容器。这是配置中的部分:
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。
答案 2 :(得分:2)
如果您使用的是nginx +代理服务器,请尝试:
proxy_buffering off;
更多信息:https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/
答案 3 :(得分:1)
我的团队在我们提供的单个javascript文件中看到了这一点。其他所有文件都工作正常。我们最初看到了net::ERR_HTTP2_PROTOCOL_ERROR
。我们从http2
切换回http1.1
,然后是net::ERR_INCOMPLETE_CHUNKED_ENCODING
或ERR_CONTENT_LENGTH_MISMATCH
。我们最终发现,有一个公司过滤器(Trustwave)错误地检测到“信息泄漏”(我们怀疑它在我们的文件/文件名中检测到类似于社会保险号的某项)。让公司调整此过滤器可以解决我们的问题。
答案 4 :(得分:0)
构建rails应用时遇到了同样的错误。我用不同的图像替换了图像,并没有更改文件名,这引发了上面的错误。只需更改文件名即可使问题消失。
答案 5 :(得分:0)
就我而言,我在nodemon server.js
(服务器端呈现)应用中使用next.js
。通过切换回node server.js
,错误消失了。
答案 6 :(得分:0)
另一个出现此错误的情况:当尝试使用Angular 7从节点服务器下载文件时,我不得不使用window.location.href = <node_server_url>
进行重定向,而不是通常的httpClient.get<any>(<node_server_url>)
。
答案 7 :(得分:-1)
以下是解决此问题的另一种方法: http://derekneely.com/2009/06/nginx-failed-13-permission-denied-while-reading-upstream/
注意:从安全角度来看,我不同意作者建议为文件夹授予777权限的链接。给出完成工作所需的最低水平(在这种情况下,700应该没问题,你甚至可以降低,但我还没有尝试)。