问题
我的网站无法随机加载随机图片。 在控制台中使用以下错误加载图像的间歇性失败:
" GET example.com/image.jpg net :: ERR_CONTENT_LENGTH_MISMATCH"
图像要么根本不加载并且使用alt标记给出损坏的图像图标,要么中途加载并且其余部分被破坏(例如,颜色全部搞砸了,或者一半图像将变灰)。
设置
Litespeed服务器,PHP / mySQL网站,包含HTML,CSS,Javascript和JQuery。
重要提示
答案 0 :(得分:1)
此错误在HTTP标头中公布的数据与通过网络传输的数据之间存在明确的不匹配。
可能来自以下方面:
如果设置错误的内容类型,也会发生这种情况。
据我所知,我还没有在IIS / apache / tomcat中看到这些问题,但主要是使用自定义编写的代码。 (在响应流上自己写图像)
甚至可能是您的广告拦截器造成的。
尝试禁用它或为图像来源的域添加例外。
答案 1 :(得分:0)
建议使用cURL将图像作为离散url访问,例如 php testCurlimg> image.log 2>& 1 ,以确切了解服务器返回的内容。然后你可以移动级别来测试网页 php testCurlpg> page.log 2>& 1 以查看混合数据的上下文
答案 2 :(得分:0)
我只是遇到了同样的pkg-config
错误。我优化了图像并对其进行了修复。我使用ImageOptim进行了图像优化,但是我猜想任何图像优化工具都可以使用。
答案 3 :(得分:0)
今天,使用我在php中编写的代理从Apache 2.4检索图像以提供用于访问Couchdb后端的JWT身份验证网关时,出现了此问题。该代理使用php fsockopen,并且将fread()缓冲区设置为较低(30字节),因为我已经看到此值在其他人的工作中使用过,并且我从未想过要对其进行更改。在所有失败的JPG(JFIF)图像中,我发现原始图像与所提供图像之间的差异是一系列crlf,与读取缓冲区的大小匹配。增加了缓冲区的字节长度,问题不再存在。
简而言之,如果流式读取缓冲区中的图像完全充满了回车符和换行符,则数据将被截断。这也可能与Collin Krawll的帖子有关,为什么图像优化可以解决该问题。