站点统计
umami
umami 是一个可以部署在自己服务器上的站点统计库,也可以选择使用官方的服务器或vercel一键部署,可以去官网查看相关信息
配置
umami部署成功后,需要配置以下内容才可以让他在博客中生效
相应参数
ts
// config.mts
export default defineConfigWithTheme<ThemeConfig>({
// ...
themeConfig: {
// ...
umami: {
umamiId: "xxx",
umamiToken: "xxxx",
umamiUrl: "xxx",
},
}
})umamiId
网站id,需要在统计后台中,点击设置查看网站ID
umamiToken
这个获取相对麻烦一些,需要在F12中获取登录后台时的token,目前来看token是不会过期的,这里确实会带来一定的信息隐患,所以建议这里创建一个访客token去使用。
说一下为什么这么做,umami提供的后端接口中,并没有考虑登录接口非同源请求的情况,所以在博客站点通过无法通过登录接口获取token,所以如果在不写后端接口的前提下,只能直接去使用token了,如果你对此有疑义,或者有解决方案,也欢迎提出。
umamiUrl
umami站点地址,即后端地址
动态添加js
除了上述的参数外还需要在配置一项,用于开启埋点
ts
export default defineConfigWithTheme<ThemeConfig>({
head: [
[
"script",
{
defer: "",
src: `https://${umamiUrl}/script.js`,
"data-website-id": umamiId,
},
],
],
})这样便完成了站点统计的设置,如果你不想在本地测试时触发埋点,可以按以下写法设置
ts
const isEnv = process.env.NODE_ENV !== "production";
export default defineConfigWithTheme<ThemeConfig>({
head: isEnv
? []
: [
[
"script",
{
defer: "",
src: "https://analysis.nighttea.space/script.js",
"data-website-id": "f5a8ac77-caa7-4c9e-b100-c6e030ea77a7",
},
],
],
})