Hexo图床图片不显示

本文最后更新于:2024年7月13日 下午

Hexo图床qq图片不显示

问题描述

​ 最近刚搭好Hexo博客,想上传个笔记试试来着,发现图床图片根本不显示,看了一下控制台,一堆报错,这里记录一下解决方案,希望能帮助到遇到同样问题的同学。

image-20240712101539674

问题解决

  • 首先确定一下具体问题缘由

    • 检查一下图床链接是否正常

    • 检查浏览器控制台报错信息

      我这里报错403,应该是网络资源被拒绝了

  • 解决方案:

    只需要在markdown文章开头添加一个<meta name="referrer" content="no-referrer" />即可正常显示图片。

原理剖析

  • HTML的 标签提供了 HTML 文档的元数据。元数据不会显示在客户端,但是会被浏览器解析。这也是为什么加在mardown文章里不会看到这段代码的原因。

  • HTML 的 name 属性规定了元数据的名称,这里我们用到的是referer属性,这个属性的作用是让服务器判断来源页面,即用户是从哪来的,很多时候referer被当做防盗链来使用,服务器根据你的访问来源判断是否应该让你下载这个资源,如果你的来源不和规范,比如是个恶意爬虫,那么就会产生403错误。通过浏览器查看请求数据,我们可以看到请求referer为http://localhost:8080/,被服务器直接给拦截了

    image-20240712102058495

  • 到这里,content="no-referrer"的意义就呼之欲出了,既然我们想拿到这个资源但被服务器认出来之后又被拒绝了,那么伪装一下,不告诉服务器不就行了?所以,这里content的no-referer就是表示不发送引用数据,隐藏自己的来源信息。这样,图片就能正常显示了。


Hexo图床图片不显示
https://genioco.github.io/2024/07/12/Hexo/Hexo图床图片不显示/
作者
BadWolf
发布于
2024年7月12日
许可协议