问题描述
自上一次更换主题博客以来,从oneindex引用的图片一直不能点击放大,一点击就报错:
The requested content cannot be loaded.Please try again later.
浏览器调试台就报跨域禁止:
Cross-origin Read Blocking (CORB) blocked cross-origin response https://od.siuze.topl withMIME type text/html. see https:/ /ww.chromestatus .com/feature/5629709824032768 for more details.
别的外链并没有这个问题。
原因分析
我一直把这个问题定位在oneindex图床的跨域权限上,断断续续被折磨了好几个月,没有解决。
之前就有疑问,若是跨域问题,为何博客在渲染文章的时候,小图可以正常加载而点击放大就不行了呢?
直到早上补作业的时候灵光一闪,注意到当鼠标放在指oneindex图床的图片上时,浏览器下方提示的外部链接与其他图床如超星的外链显示是不同的。
来自One index图床的图片显示的外链不完整。
才找到了真正的原因。
是因为oneindex的链接里自带了一个问号/?/,博客的放大图片插件(即fancybox图片灯箱)在识别链接的时候自动将问号以及之后的全部内容忽略了,直接导致链接只定向到图床首页,导致加载失败。
我之前曾有想过把这个问号给去掉,但是懒得弄,所以就一直拖着,没想到竟是这个导致了这么重大的问题。
问题解决
配合伪静态,开启oneindex去除问号的功能之后可以正常使用图片放大了。
开启功能
配合伪静态,在宝塔面板调整网站配置
配置代码为:
if (!-f $request_filename){
set $rule_0 1$rule_0;
}
if (!-d $request_filename){
set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
rewrite ^/(.*)$ /index.php?/$1 last;
}