【问题标题】:Images not opening on Safari & apple devices图片无法在 Safari 和苹果设备上打开
【发布时间】:2017-08-22 21:21:22
【问题描述】:

我正在开发一个网站,问题是网站的某些照片无法在某些 Apple 设备(iPad、iPad pro 等)和 safari 浏览器上打开。例子可见here(在safari或apple设备中打开)。

即使我复制图片网址并尝试在新标签页中打开它,它也不会打开,它只是显示:

我几乎尝试了我在 stackoverflow 上找到的所有相关问题的解决方案,但没有运气!

知道为什么会这样吗?

编辑:

这不是重复的问题,因为在我的情况下,图片与尺寸无关,许多尺寸大得多的图片都可以正常显示。

【问题讨论】:

  • 你尝试了什么?
  • @NilayVishwakarma 几种图像压缩、尺寸规格、删除锚标签等
  • @Manu 不是大小问题,而是文件格式问题。他们不是jpeg。此外,它们的字节大小和/像素大小并不大。

标签: php css image ipad safari


【解决方案1】:

正在下载并检查未显示的图像,例如...

$ file /Users/paolo/Desktop/14864236730ce9011e-original.jpg 
/Users/paolo/Desktop/14864236730ce9011e-original.jpg: RIFF (little-endian) data

...事实证明它们不是 jpeg 扩展所建议的,而是 riff

https://en.wikipedia.org/wiki/Resource_Interchange_File_Format

riff 格式是一个包装器,在这种情况下,它包装了一个 WEBP 图像。

这就是 Chrome 能够打开文件并显示图像的原因。

您可以使用file 命令行工具识别RIFF 图像。

您可以用来转换它们的一个工具是xnconvert(免费和多平台)

我刚刚用上面的图片试了一下,效果很好。

您也可以使用它来批量处理多个图像。

我不知道这些图像是如何以这种格式出现的。可能有一些服务器端脚本可以将上传的图像转换为 WEBP/RIFF。但当然只是猜测。

【讨论】:

  • 嗯..这很奇怪,我从来没有上传任何 riff 文件(我什至不知道那是什么),但是有没有办法检测哪些图像是 riff(除了下载和检查每个图像,有数千个)?
  • 我下载了一张未通过其图像 url 显示的图片,我无法在我的笔记本电脑上打开它(出现错误:它可能已损坏或使用预览没有的文件格式'不认识。),然后我将其转换为正确的 jpeg 格式,然后能够在我的笔记本电脑上打开该图片,然后将其上传回其原始位置进行检查 - 但是当我再次在 safari 和我的笔记本电脑上打开它时再次从图像 url 下载了该图片.....它既有趣又奇怪,因为服务器上没有脚本可以再次将该图像转换为即兴演奏。有什么想法吗?
  • 如果您上传 JPEG,然后您会在网站上获得 WEBP,那么在上传和提供给客户端的图像之间的某个时间点会发生转换。这是我们唯一确定的事情。 - 我不能给你更多的帮助。隔离图像更改格式的点。前任。在网络服务器存储上,它们仍然是 JPEG 还是已经变成了 WEBP?...
  • 不应该这样,因为:1)我直接通过ftp而不是通过网站用户面板上传图像,因此任何脚本都可以运行,以及2)为什么只有少数图像没有显示,如果全部都在转换,则不应显示任何图像。虽然我会再次彻底检查以确保没有脚本影响图片,但至少现在我知道图片不显示的原因,谢谢:)
  • 我知道这不是 OP 的情况,但以防万一其他人(很可能是未来的我)遇到类似问题的问题:在我的情况下,罪魁祸首是 webp 优化器来自 image-webpack-loader。
猜你喜欢
  • 1970-01-01
  • 2015-05-09
  • 2015-09-09
  • 1970-01-01
  • 1970-01-01
  • 2021-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多