Wagtail 中解决百度统计 Referrer 被禁用错误
•
2024-02-20
•
文章类别:
框架 & CMS
•
阅读量:231
百度统计是一款稳定、专业的网站数据流量分析平台。百度统计提供流量统计、用户搜索的关键词等功能,结合百度使用非常契合。
在 Wagtail 项目中使用百度统计,安装百度统计代码后,检测百度统计代码的安装状态,可能会提示 “Referrer 被禁用” 错误。
本文将介绍如何解决 Wagtail 项目中百度统计 Referrer 被禁用错误。
百度统计Referrer被禁用原因分析
在 Wagtail 项目中默认启用了 Middleware (中间件) django.middleware.security.SecurityMiddleware
,则在 Wagtail 项目中默认配置了 referrer policy。
Wagtail 项目中 referrer policy 使用 SECURE_REFERRER_POLICY
配置。如果你在 Wagtail 项目中没有显式配置 SECURE_REFERRER_POLICY
,其默认值为 same-origin
。
默认 referrer policy 值 same-origin
是不能正常运行百度统计代码。
百度统计Referrer被禁用解决方法
referrer policy取值分析
如果要使百度统计代码正常运行 referrer policy 的值可取 unsafe-url
, strict-origin-when-cross-origin
, origin-when-cross-origin
, origin
其中的一个,建议设置的优先级如下:unsafe-url
> strict-origin-when-cross-origin
> origin-when-cross-origin
> origin
。
Wagtail 项目建议使用的 referrer policy 值为 same-origin
。
百度统计代码正常运行建议使用的 referrer policy 值为 strict-origin-when-cross-origin
。
具体解决示例
1、配置 referrer policy 添加如下形式的 <meta>
标记:
<meta name="referrer" content="...">
2、解决百度统计Referrer被禁用的示例代码(在所有模板继承 base.html 文件中添加代码):
<head>
<meta name="referrer" content="strict-origin-when-cross-origin">
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?2isapfjw98l2usb8a8a4bf4412c6b7a1";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
<meta name="referrer" content="same-origin">
...
</head>
代码解释:
- 在
<head>
标记开始位置添加百度统计代码,并且在百度统计代码的前面修改 referrer policy 的值为strict-origin-when-cross-origin
,在百度统计代码的后面修改为原来的 referrer policy 值,实现既能正常运行百度统计代码,又能满足 Wagtail 需要的安全设置。
结语
本文介绍了如何解决 Wagtail 项目中百度统计 Referrer 被禁用错误,提供的解决方法既能实现正常运行百度统计代码,又能满足 Wagtail 需要的安全设置。
0 评论