1.问题描述
Hexo文章中采用图床方式加载的图片无法成功加载。
2.问题原因
####2.1Referer含义
HTTP协议在请求(request)的头信息里面, 设计了一个Referer字段,提供访问来源的信息。这个字段是可选的,客户端发送请求的时候,可以自主决定是否加上该字段。
2.2Referer的常见作用
(1)用户行为日志记录访问来源;
(2)防盗链。部分网站不允许图片外链,只允许本网站才能显示图片,外部网站加载图片就会报错。通过对请求方的Referer进行判断过滤,确认是否可以访问。
2.3Referrer Policy的设置方法
引用策略(Referrer Policy)就是文档发出请求时,是否在请求头部定义 Referrer 的设置。一般浏览器的默认值是:==no-referrer-when-downgrade==。
(1)HTTP头部信息:服务器发送网页的时候,通过HTTP响应头中的 Referrer-Policy 字段告诉浏览器。
Content-Security-Policy: referrer | no-referrer | no-referrer-when-downgrade | origin | orign-when-cross-orign | unsafe-url;
(2)** meta**标签:使用 meta标签,在网页头部设置
<meta name="referrer" content="no-referrer | no-referrer-when-downgrade | origin | orign-when-cross-orign | unsafe-url">
(3)referrerplicy属性: a、area、img、iframe 和 link 标签,可以设置referrerpolicy属性。
<a href="" referrerpolicy="orign"></a>
3.解决办法
【Hingle主题】主题文件夹内的(themes\hingle\layout_partial) head.ejs文件中,添加meta信息
<meta name="referrer" content="no-referrer" />
4.重新生成hexo
hexo g