上次更换云服务器重新部署 shokax
, 在使用 waline评论系统
后一直有几个问题我没有处理,今天抽时间研究了一下,把所有的问题都解决了,记录一下,希望可以帮到有相同问题的小伙伴
# 阅读次数不显示
在上一篇 ShokaX 搭建教程文章中我有吐槽过,本地的数据库中 wl_Counter
明明有记录阅读次数,但是文章中阅读次数总是显示为 0,通过查看网页源码可以看到 data-path
的路径值是没有经过 URL编码
的,而数据库中的 url
的值则是经过 URL编码
的,所以导致路径不一致而不显示阅读次数
通过查找得知 Shokax
目录下生成 data-path
这段代码的文件为 node_modules/.store/hexo-theme-shokax@0.4.11/node_modules/hexo-theme-shokax/layout/_partials/post/footer.pug
中的第七行代码
编辑该文件,用 encodeURI()
将 prerixedPath
的值进行 URL编码
即可
- var prefixedPath = encodeURI(post.path.startsWith('/') ? post.path : '/' + post.path) |
更改完后,执行 hexo g
重新生成网站静态文件,把目录发布到云服务器的 web服务器
根目录,重新查看文档源码,可以看到 data-path
的值跟数据库的 url
值保持一致了,文章中的阅读次数也能够正常显示了
# 评论通知
评论通知我这边选择了微信和邮箱这两种方式,微信是通过公众号 方糖
(原 Server 醬) 订阅通知,先在微信添加 方糖
公众号并注册
# Server 醬
在云服务器的 waline
根目录下,编辑 .env
环境变量文件,添加以下信息
SECURE_DOMAINS=xxx.xxx #你的域名 | |
NOTIFY=true #启用通知 | |
NOTIFY_MODE=serverchan #通知方式为 serverchan | |
SC_KEY=xxxx #Server 醬的安全密钥 | |
AUTHOR_EMAIL=xxx@xxx.com #你的邮箱,此邮箱的回复不会收到推送通知 | |
SITE_NAME=xxx #网站名称 | |
SITE_URL=https://xxx.xxx #你的域名 |
添加完后保存,执行 cnpm run restart
重启 waline
服务,配置正常此时公众号可以收到一条测试信息
# 邮箱通知
添加邮箱通知,编辑 waline
根目录下的 .env
环境变量文件,这里以 QQ 邮箱为例,添加以下内容
SMTP_SERVICE=QQ | |
SMTP_USER=xxx@qq.com #发信用 QQ 邮箱 | |
SMTP_PASS=xxxxx #SMTP 授权密钥 | |
SMTP_SECURE=SSL | |
AUTHOR_EMAIL=xxx@xxx.com #接收通知的邮箱地址 |
# 同时使用邮箱和其他应用同时通知
正常情况下, waline
不支持邮箱和其他应用程序同时通知,如果你希望邮箱和其他通知方式一起同时使用的话,需要在云服务器上修改 waline根目录下.node_modules/.store/@waline+vercel@1.32.1/node_modules/@waline/vercel/src/service/notify.js
文件
找到以下代码
if ( | |
[wechat, qq, telegram, qywxAmWechat, pushplus, discord, lark].every( | |
think.isEmpty, | |
) | |
) { | |
mailList.push({ to: AUTHOR, title, content }); | |
} | |
} |
如果你想同时使用邮箱和其他应用的通知方式,则删除数组中对应的应用程序名称,例如微信 (wechat),然后保存重启 waline
服务即可
我目前遇到的就这几个问题,如果大家在使用中遇到其它问题,欢迎留言一起讨论