我创建了一个node / express API,以将base64数据作为图像返回。
使用https://www.example.com/api/resident/59dbd52a7604450012c390ac/image可以很好地加载图像 我一直在前端的各个页面中使用此图像。
问题是,当我尝试将这些数据用于Facebook上的og:image标签时,出现错误: “提供的og:图片URL https://www.example.com/api/resident/59dbd52a7604450012c390ac/image由于内容类型无效,因此无法作为图片处理。”
我知道Facebook可以看到正确的元标记,因为当我单击“确切地看到我们的抓取工具为您的URL看到的内容”时,它显示了正确的标记。当我单击提供的URL时,它将显示图像。
express中的控制器如下:
export function image(req, res) {
var base64Data = req.resident.picture;
var img = new Buffer(base64Data, 'base64');
res.writeHead(200, {
'Content-Type': 'image/jpeg',
'Content-Length': img.length
});
return res.end(img);
}
HTML中的标签如下:
<meta property="og:title" content="My Site">
<meta property="og:image" content="https://www.example.com/api/resident/59dbd52a7604450012c390ac/image">
<meta property="og:image:type" content="image/jpeg">
<meta property="og:image:height" content="800">
<meta property="og:image:width" content="800">