✔️不蒜子子页面访问量问题
bitcron-pro主题使用的不蒜子访问量统计出现问题,每篇文章的views显示的是根路径的访问数。
查看请求记录后发现即使是在post页面发的请求,HTTP头的参考路径依然是http://starzx.top/。经测试,在post页面嵌入一个按钮,点击按钮触发POST请求,此时请求头的Referer是对的。
目前的推测是Referer指向的是最新URL的上一个URL。当进入post页面时,上一个URL是首页。当点击按钮时,相对于按钮回调发送的请求上一个URL是当前post页面。如果从post页面跳转出去,发起请求的referer也是post页面的,因此referer确实是指向上一个URL。
不论把busuanzi的脚本放在哪个位置,发送请求的referer都是starzx.top/,看来还是得自己写一个插件了。
views_counter
- 使用tornado搭建一个简单的后端服务器并运行
- 前端的JS脚本会提取特定id元素的server-url数据,将其视为服务器地址发送请求。请求参数携带了自身URL信息
- 后端接收到请求后使用MD5构造页面哈希、站点哈希和用户哈希,再加上当前时间共同组成一条记录插入到数据库
- 数据库使用sqlite,直接编写SQL语句执行操作
- 后端查询访问记录,统计访问量并回送响应
- 前端接收到响应后向特定id的元素写入访问量
jsDelivr
jsDelivr可以加速github资源的访问。进入https://www.jsdelivr.com/github粘贴github资源链接,网站会自动拉取文件并给出转换的链接。要注意对于同一个资源,jsDelivr只会在转换链接时拉取一次,即使文件有更新也不会再拉取。如果更新了文件,需要创建一个新tag才能重新转换。
完成
插件代码放在了https://github.com/RavenKiller/views_counter
在bitcron-pro主题的head.ejs导入脚本,在posts.ejs和footer.ejs添加相应的组件,删除原来的busuanzi组件,页面访问量可以正常显示了!