这是我参与11月更文挑战的第2天,活动详情查看:2021最后一次更文挑战
前言
最近在处理官网活动页的需求,产品发了一张截图,并问了一句,知乎上分享的链接,显示的图片能不能自定义。
我想了想,这不是知乎去控制显示的吗?当然,我没有马上回复,这个实现不了。没有把握的事情,肯定不会去回复的啊。才有了这篇文章,记录我找到解决方案,实现效果。
在知乎上多次尝试
首先,是在知乎上的“写文章”那里进行测试,粘贴几个链接,然后切换成卡片展示。
第一个就是产品发的那个链接
看了一下,那个链接,显示的图片是,页面中的 img 标签对应的图片。知乎将那张图片,作为卡片展示的图片。
第二个是移动端的活动页
并没有显示图片,而是显示一个 svg,可能是知乎那边没有抓取到图片。
第三个是掘金的首页地址:juejin.cn/
在首页观察了一下,那张图片,是“稀土掘金漫游指南”左边的图片。
为什么会显示这张图片呢?而不是其他图片呢?因为页面的也有不少其他图片。
审查下元素,发现这个图片,也是一个 img 标签的地址。
查下相关资料
搜索“网页知乎发链接,首图抓去”,凑巧看到了网页如何控制被分享到知乎时的标题和图片? 类似的问题,看到貘大的回答,跟我测试的结果有出入。
验证下
第一种情况:纯 html 文件,demo.polyv.net/oujiale/tes…
并没有显示图片,这就印证了貘大说的,前端渲染,抓不到的情况。应该要服务器渲染之类的。所以就有了使用 php 来测试下。
第二种情况:在 php 中显示图片,demo.polyv.net/oujiale/tes…
卡片有显示图片了。
第三种情况:在 php 中有一张图片,但是它是隐藏的,demo.polyv.net/oujiale/tes…
为什么要验证这种情况呢?因为如果为了实现效果,而在页面显示一张图片的话,就会影响到页面原来的效果。所以就测试了这种情况,结果,卡片还是有显示图片的。
写到最后
网页分享到知乎时的标题,是由页面的 title 标签里面的内容来显示的。
图片,是由页面的 img 标签的图片来显示的,极大可能是页面里第一个 img src 的内容。
希望自己能够保持好奇心,相信自己有能力做得更好!
完。