【问题标题】:Javascript - ERR_CONTENT_LENGTH_MISMATCHJavascript - ERR_CONTENT_LENGTH_MISMATCH
【发布时间】:2014-03-04 21:50:52
【问题描述】:

我正在制作一个基本的 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";
  };
}

【问题讨论】:

  • 全部内联。 html的原行是:

    但是,该图像不会首先加载;在网站生命周期的后期,它会被我将编辑到原始帖子中的功能更改
  • 不用了,图片本身就是个问题。我相信它已经损坏了。 whereslouis.com/bg1.jpg -> 在 chrome 和 firefox 上尝试,无法查看整个图像:“图像“whereslouis.com/bg1.jpg”无法显示,因为它包含错误。”
  • 图像现在加载得很好:但是我假设这是由于缓存?
  • 好吧,我不知道如何解决这个问题,但我肯定会尝试将其导出回来。也许您将文件“保存”为 jpg 但没有使用“保存为网络和设备”功能?我不认为图像太大,它一定是一个损坏的文件,偶尔会发生。尝试使用另一张图片,以确保我说的有道理;)

标签: javascript jquery html


【解决方案1】:

我收到错误: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”失败(13: 权限被拒绝)同时读取文件 xyz 的上游

我是这样解决的:

sudo nginx -s stop    
sudo rm -rf /usr/local/var/run/nginx/*    
sudo nginx

【讨论】:

  • 我似乎没有/usr/local/var 目录,这些文件可能在其他地方吗?
  • 运行 nginx -t 以找到您的配置文件。 .conf 文件的顶部应指定日志输出
  • 啊这只是删除日志?我不确定 in var/run/nginx/... 是什么
  • 遇到了同样的问题,最终发现/var/已经满了,不得不清除一些日志
【解决方案2】:

总结

这里是对我的案例发生的事情的更详细的解释。这里选择的答案帮助我解决了我的问题,这基本上是选择答案的更详细版本,关于如何和为什么!

解释 Nginx 权限

您可以以nobody 用户身份运行nginx,这是大多数示例配置中的常见做法。你会在配置的顶部找到这一行:

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。

【讨论】:

    【解决方案3】:

    如果您使用的是 nginx + 代理服务器,请尝试: proxy_buffering off;

    更多信息:https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/

    【讨论】:

      【解决方案4】:

      就我而言,我在next.js(服务器端渲染)应用程序中使用了nodemon server.js。切换回node server.js,错误就消失了。

      【讨论】:

        【解决方案5】:

        我的团队在我们提供的单个 javascript 文件中看到了这一点。其他所有文件都运行良好。我们最初看到net::ERR_HTTP2_PROTOCOL_ERROR。我们从http2 切换回http1.1,然后是net::ERR_INCOMPLETE_CHUNKED_ENCODINGERR_CONTENT_LENGTH_MISMATCH。我们最终发现有一个公司过滤器 (Trustwave) 错误地检测到“信息泄漏”(我们怀疑它在我们的文件/文件名中检测到类似于社会安全号码的东西)。让公司调整这个过滤器解决了我们的问题。

        【讨论】:

          【解决方案6】:

          我在构建 Rails 应用程序时遇到了同样的错误。我用不同的图像替换了一个图像并且没有更改文件名,这引发了上面的错误。只需更改文件名即可使问题消失。

          【讨论】:

          • 有什么方法可以在不更改文件名的情况下解决这个问题?
          【解决方案7】:

          我出现此错误的另一种情况:尝试使用 Angular 7 从节点服务器下载文件时,我不得不使用 window.location.href = &lt;node_server_url&gt; 而不是通常的 httpClient.get&lt;any&gt;(&lt;node_server_url&gt;) 重定向。

          【讨论】:

            【解决方案8】:

            这是解决此问题的另一种方法: http://derekneely.com/2009/06/nginx-failed-13-permission-denied-while-reading-upstream/

            注意:从安全的角度来看,我不同意作者建议授予文件夹 777 权限的链接。给出完成工作所需的最低水平(在这种情况下,700 应该没问题,你甚至可以更低,虽然我还没有尝试过)。

            【讨论】:

            • 在我的情况下这不是权限错误,这是我桌面上的一个简单的 Html 和 CSS 页面,所以权限很好
            • 或尝试从没有有效证书的本地/远程服务器加载 HTTPS 请求
            • 这是一个无用的答案,链接现在已经死了,没有描述它包含的内容+对另一个答案的评论。
            猜你喜欢
            • 2015-05-04
            • 2014-05-18
            • 2016-07-16
            • 2016-07-25
            • 1970-01-01
            • 2014-05-24
            • 1970-01-01
            • 2016-02-13
            • 2014-06-13
            相关资源
            最近更新 更多