我正在使用 php 文件将图像加载到我的网页中,因为它们托管在 webroot 之外。除了 Facebook 在og:image
以这种方式加载时没有在元标记中注册图像之外,一切都运行良好。
具有讽刺意味的是,有问题的页面是https://www.molecularmagic.net/hosting/the.computing.cafe/www/index.php?t=3b3c55
有问题的元标记是:
<meta property="og:image" content="https://www.molecularmagic.net/hosting/the.computing.cafe/www/file.php?f=feature_image.png">
与图像一起发送的标头是:
accept-ranges: bytes
cache-control: public, max-age=604800
content-length: 243688
content-type: image/png
date: Sun, 06 Jun 2021 22:56:58 GMT
expires: Thu, 19 Nov 1981 08:52:00 GMT
last-modified: Sun, 06 Jun 2021 23:05:22 +0100
server: LiteSpeed
vary: User-Agent
在这种情况下,Facebook 共享调试器给了我这个错误:
Provided og:image URL, https://www.molecularmagic.net/hosting/the.computing.cafe/www/file.php?f=featured_image.png could not be processed as an image because it has an invalid content type
对于其他页面,og:image
标签为:
<meta property="og:image" content="http://openmediavault/the.computing.cafe/www/images/feature_image.png?1623012347">
文件名后面的数字是filemtime
强制 FB 重新加载图像,如果我改变它。与此图像一起发送的标头是:
accept-ranges: bytes
cache-control: public, max-age=604800
content-length: 183886
content-type: image/png
date: Sun, 06 Jun 2021 22:27:30 GMT
expires: Sun, 13 Jun 2021 22:27:30 GMT
last-modified: Sun, 06 Jun 2021 20:46:04 GMT
server: LiteSpeed
vary: User-Agent
...和 Facebook 共享调试器正确呈现图像。
我已经非常努力地确保发送图像时的标题file.php
尽可能接近从“真实”图像文件发送的标题。
我知道这是通过提供图像引起的,file.php
但我不明白为什么当标题看起来相同时,Facebook 会告诉我图像具有无效的内容类型。
谁能建议为什么会这样?