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