【问题标题】:Intermittent failure to load images - ERR_CONTENT_LENGTH_MISMATCH加载图像间歇性失败 - ERR_CONTENT_LENGTH_MISMATCH
【发布时间】:2015-08-29 11:34:00
【问题描述】:

问题

我的网站无法在随机时间加载随机图像。 在控制台中加载图像间歇性失败并出现以下错误:

“获取 example.com/image.jpg net::ERR_CONTENT_LENGTH_MISMATCH”

图像要么根本不加载,并给出带有 alt 标签的损坏的图像图标,要么加载到一半而其余部分已损坏(例如,颜色全部搞砸或一半图像将变灰)。

设置

Litespeed 服务器,PHP/mySQL 网站,带有 HTML、CSS、Javascript 和 JQuery。

重要提示

  • 所有主要的网络浏览器都会出现问题 - 间歇性和各种图像。
  • 我正在通过 htaccess 在所有页面上强制使用 UTF-8 编码和 HTTPS。
  • 托管服务提供商声明所有权限均已正确设置。
  • 在我的访问日志中,当图像加载失败时,它会为图像提供“200 OK”响应,并将传输的字节列为“0”(零)。
  • 几乎总是无法加载图像,但可能有 5% 的时间是 CSS 文件或 Javascript 文件。
  • 在将服务器从 Apache 迁移到 Litespeed 后立即出现问题,并且该问题已持续数周。
  • Gzip 和缓存已启用。

【问题讨论】:

  • 您是否也为图片启用了 gzip?通常不建议这样做,因为您不会获得太多收益,而且会浪费大量 CPU。
  • 我自己也在想,有没有快速检查的方法?抱歉,我不是网络管理员...
  • 您可以使用在线工具,例如checkgzipcompression.com(谷歌第一次点击)。
  • 没有为单个图像启用 GZIP。为整个网页启用 GZIP。我认为这是正常的行为。好主意,不过感谢您的帮助。
  • 是否涉及代理或负载平衡器或堆栈中的其他任何内容,您可以告诉我们

标签: javascript php html content-length


【解决方案1】:

此错误是在 HTTP 标头中公布的数据与通过网络传输的数据之间明显不匹配。

它可能来自以下:

  1. 服务器 :如果服务器存在某些模块的错误,该错误会更改内容但不更新标头中的内容长度或无法正常工作。
  2. 代理:您和您的服务器之间的任何代理都可能会修改请求而不更新内容长度标头。

如果设置了错误的内容类型,也可能发生这种情况。

据我所知,我在 IIS/apache/tomcat 中没有看到这些问题,但主要是自定义编写的代码。 (自己在响应流上写图像)

它甚至可能是由您的广告拦截器引起的。

尝试禁用它或为图像来自的域添加例外。

【讨论】:

  • 我会向我的主机询问错误和代理,因为我对此一无所知。我确实在网上看到其他人指出了广告拦截器问题。它已被禁用,无论有没有它,它仍然可以正常工作。在我没有使用广告拦截器并且从未安装过广告拦截器的其他浏览器上,它仍然会发生。谢谢。
【解决方案2】:

建议使用 cURL 将图像作为离散 url 访问,例如 php testCurlimg >image.log 2>&1 以查看服务器返回的确切内容。然后你可以上一层来测试网页 php testCurlpg >page.log 2>&1 查看混合数据的上下文

【讨论】:

    【解决方案3】:

    我刚刚遇到了同样的ERR_CONTENT_LENGTH_MISMATCH 错误。我优化了图像并修复了它。我使用 ImageOptim 进行了图像优化,但我猜任何图像优化工具都可以工作。

    【讨论】:

      【解决方案4】:

      今天在使用我在 php 中编写的代理来提供用于访问 couchdb 后端的 JWT 身份验证网关时,从 Apache 2.4 检索图像时遇到了这个问题。代理使用 php fsockopen 并且 fread() 缓冲区设置得相对较低(30 字节),因为我已经看到这个值在其他人的工作中使用并且我从未想过要更改它。在我所有失败的 JPG (JFIF) 图像中,我发现原始图像与所提供图像的差异是一系列与 fread 缓冲区大小相匹配的 crlf。增加缓冲区的字节长度,问题不再存在。

      简而言之,如果流式传输图像的 fread 缓冲区完全充满了回车和换行,则数据会被截断。这也可能与 Collin Krawll 关于图像优化解决该问题的原因的帖子有关。

      【讨论】:

        猜你喜欢
        • 2016-10-20
        • 1970-01-01
        • 2015-05-04
        • 2014-06-24
        • 1970-01-01
        • 2019-04-18
        • 2011-10-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多