sakura icon indicating copy to clipboard operation
sakura copied to clipboard

追番页面给每个图片单独设置 referrerPolicy

Open Lin515 opened this issue 2 years ago • 4 comments

page-bangumi.php 中设置了全局 referrer 规则:非同源请求不发送 referer <meta name="referrer" content="same-origin">。 如果开启了 PJAX 局部刷新,从追番页面去到其它页面该规则也会被保留,这会导致后面的非同源请求也不发送 referer。 如果有非同源资源比如 CDN 禁止空 referer 请求,那么这部分资源就会无法访问。

Lin515 avatar Jun 21 '22 12:06 Lin515

meta是不是应该放在head里面

mashirozx avatar Jun 21 '22 13:06 mashirozx

meta是不是应该放在head里面

没太懂意思,放在 head 里不就是全站生效了吗? 因为追番页面捕获到的番封面图只能空 referer 引用,而站里的其它资源可能又需要 referer,这样就会有冲突,所以修改成了给每个番封面图的 img 标签加上 referrerPolicy。

Lin515 avatar Jun 21 '22 13:06 Lin515

head里面可以条件判断是什么页面

mashirozx avatar Jun 21 '22 15:06 mashirozx

我有这样试着做一下,但实现了不同页面使用不同的 referer,单个 bangumi 页面下各资源也会有需要不同 referer 的时候。比如直接访问 bangumi 页面,因为没有缓存,站点许多静态资源都要获取,如果这些资源是在 CDN 上需要 referer 的,那页面就无法正常加载了。 直接给 img 标签单独设定 referrerPolicy 是感觉最简单直接的办法了。

此前 jsdelivr 失效,我就改成了用自己的 cdn,而且禁止了空 referer 访问,才发现了这个问题。

Lin515 avatar Jun 21 '22 16:06 Lin515