Hexo图床图片不显示
本文最后更新于:2024年7月13日 下午
Hexo图床qq图片不显示
问题描述
最近刚搭好Hexo博客,想上传个笔记试试来着,发现图床图片根本不显示,看了一下控制台,一堆报错,这里记录一下解决方案,希望能帮助到遇到同样问题的同学。
问题解决
首先确定一下具体问题缘由
检查一下图床链接是否正常
检查浏览器控制台报错信息
我这里报错403,应该是网络资源被拒绝了
解决方案:
只需要在markdown文章开头添加一个
<meta name="referrer" content="no-referrer" />
即可正常显示图片。
原理剖析
HTML的 标签提供了 HTML 文档的元数据。元数据不会显示在客户端,但是会被浏览器解析。这也是为什么加在mardown文章里不会看到这段代码的原因。
HTML 的 name 属性规定了元数据的名称,这里我们用到的是referer属性,这个属性的作用是让服务器判断来源页面,即用户是从哪来的,很多时候referer被当做防盗链来使用,服务器根据你的访问来源判断是否应该让你下载这个资源,如果你的来源不和规范,比如是个恶意爬虫,那么就会产生403错误。通过浏览器查看请求数据,我们可以看到请求referer为
http://localhost:8080/
,被服务器直接给拦截了到这里,
content="no-referrer"
的意义就呼之欲出了,既然我们想拿到这个资源但被服务器认出来之后又被拒绝了,那么伪装一下,不告诉服务器不就行了?所以,这里content的no-referer就是表示不发送引用数据,隐藏自己的来源信息。这样,图片就能正常显示了。