如何为 GitHub-Pages-powered 站点实现基本的页面查看计数器?

How to implement a basic page view counter for a GitHub-Pages-powered site?

我想使用 GitHub 页面托管 Jekyll 博客。 我已经购买了一个许可证,可以显示最多 50.000 页 views/month 的网络字体。 为了不违反这个协议,我需要实现某种机制来统计浏览量,这样我就可以在浏览量达到50,000时采取行动。

我脑子里有一些比较复杂的想法。 一方面,我正在考虑调用某个 AWS Lambda 函数来计算每个页面浏览量,并在浏览量过多时采取措施。 另一方面,我了解到 MyFonts、Linotype 和其他字体商店使用名为 "pay-as-you-go" 的许可模型提供他们的一些网络字体,在这种情况下,他们确实要求他们的客户使用他们提供的页面浏览计数器,所以只要达到某些配额,他们就可以连续收费。 他们的客户通过链接到各自字体商店托管的唯一 CSS 文件,将这些页面查看计数器添加到他们的网站。

但是,由于我可能不是唯一一个需要处理这个问题的人,我想知道其他人是如何解决这个问题的。 对于真正只是页面浏览计数器的东西,我的想法似乎有点过头了。

有没有更简单的方法?一般是怎么做的?

您有不同的选择:

1.使用他们的计数器
使用他们的(类型铸造厂)CSS 文件,他们计算命中,是最简单的解决方案。不是很好,因为它需要外部请求,但肯定是最简单的。请注意,过度活跃的广告拦截器可能会阻止这些跨域请求,从而导致使用默认字体的页面损坏。

2。外部计数器
如果您希望您的字体始终加载,您应该在本地托管所有内容(CSS 和字体)并使用外部计数器(如 Google Analytics)。但是,这个计数器也可以(并且将会)被阻止。您的字体将会加载,但您的计数器不会很准确。

3。 AWS Lambda 或日志分析器
当您想要更准确的计数器时,您可以使用本地 Lambda 函数,或者您可以将 Jekyll 网站的输出与 AWstats(日志分析器)放在共享的虚拟主机帐户上。这是迄今为止最好的解决方案。您的字体将始终加载并且您的计数器非常准确。

4.使用不同的许可证
一个不太合逻辑的解决方案是不使用这些类型的许可证。从 Google 获取漂亮的开源字体并自行托管。您可以使用 https://google-webfonts-helper.herokuapp.com/fonts 下载字体。这是迄今为止我最喜欢的解决方案。

另一个想法可能是使用 CloudFlare Worker 来前端站点并使用 Worker KV 来跟踪页面浏览量。或者,如果您想走得更远,那也可能是您要计算的终点。

但假设这些供应商只计算未缓存的请求,您可以将工作计数器放在字体文件的路径上,以跟踪服务器为这些文件访问的频率。然后,如果您匹配与供应商相同的缓存控制策略,则应该设置相同的测量系统。

许多GitHub 命中计数器需要服务器或数据库。但是有一个 GitHub 操作使用 GitHub API。它每天更新,不需要任何服务器或数据库。它会自动将更改保存到存储库中。转到模板 GitHub Insights Template

有一个免费的 API 可以与 Javascript 一起使用来执行此操作。我戴上它,就像手套一样。

基本上,您创建一个键(名称空间),并且每个 post 为此路由递增 1。然后您可以恢复此计数以供显示。

https://javascript.plainenglish.io/how-to-count-page-views-with-the-count-api-afc9369c1f8f

https://countapi.xyz/