解决Hexo中图片因跨域资源共享(CORS)政策或引用来源限制无法显示问题
解决Hexo中图片因跨域资源共享(CORS)政策或引用来源限制无法显示问题
以下内容98%由AI代写
起因是,使用某云盘做外链图床时发现图片无法在https访问时正常显示,在使用云盘作为图床时,该问题.通常是因为浏览器的跨域资源共享(CORS)**政策或**引用来源限制导致的
问题原因
引用来源限制(Referrer Policy)
:
- 当你将图片托管在云盘上,并通过 URL 引用这些图片时,云盘的服务器可能会检查请求的Referer头(该头记录了请求发起页面的 URL)。如果Referer头携带的 URL 和云盘的资源域名不匹配,云盘可能会拒绝提供资源或返回错误响应。
CORS策略
:
- 浏览器在加载跨域资源时,会检查 CORS(跨域资源共享)策略。如果服务器未正确配置 CORS 头,浏览器会阻止显示资源。
通过 <meta name="referrer" content="no-referrer"/>
来解决
在页面 <head>
中加入 <meta name="referrer" content="no-referrer"/>
后,可以解决图片无法显示的问题,其原因如下:
控制 Referrer 头部
:
<meta name="referrer" content="no-referrer"/>
设置了一个特定的引用策略,告知浏览器在请求图片时不携带任何 Referer 头。这样,云盘的服务器就无法收到来自原网站的 Referer 信息,也就不会因为来源不匹配而拒绝返回图片。
避免隐私泄露
:
- 在某些情况下,Referer 头部会暴露用户正在访问的页面 URL,这可能会带来隐私泄露的风险。使用
no-referrer
策略可以有效地避免这个问题,同时也避免了由于 Referer 不匹配而导致的请求失败。
- 在某些情况下,Referer 头部会暴露用户正在访问的页面 URL,这可能会带来隐私泄露的风险。使用
总结
通过设置 <meta name="referrer" content="no-referrer"/>
,浏览器会在请求图片时不发送 Referer 头,避免了跨域请求时因为 Referer 不匹配而导致的访问被拒绝。这种方式有助于解决使用云盘作为图床时,图片无法显示的问题。
如何在Hexo系统上修改:
根据实际情况在thems
中找到自己的主题文件夹,然后在layout
文件夹中搜索head.ejs
文件并且打开,然后在<head>
标签下写入<meta name="referrer" content="no-referrer"/>
如果没有head标签就自己创建一个
解决Hexo中图片因跨域资源共享(CORS)政策或引用来源限制无法显示问题
https://b.wihi.top/posts/d5051a4d.html