upload successful

上次更换云服务器重新部署 shokax , 在使用 waline评论系统 后一直有几个问题我没有处理,今天抽时间研究了一下,把所有的问题都解决了,记录一下,希望可以帮到有相同问题的小伙伴

# 阅读次数不显示

在上一篇 ShokaX 搭建教程文章中我有吐槽过,本地的数据库中 wl_Counter 明明有记录阅读次数,但是文章中阅读次数总是显示为 0,通过查看网页源码可以看到 data-path 的路径值是没有经过 URL编码 的,而数据库中的 url 的值则是经过 URL编码 的,所以导致路径不一致而不显示阅读次数

upload successful

通过查找得知 Shokax 目录下生成 data-path 这段代码的文件为 node_modules/.store/hexo-theme-shokax@0.4.11/node_modules/hexo-theme-shokax/layout/_partials/post/footer.pug 中的第七行代码

upload successful

编辑该文件,用 encodeURI()prerixedPath 的值进行 URL编码 即可

l
- var prefixedPath = encodeURI(post.path.startsWith('/') ? post.path : '/' + post.path)

更改完后,执行 hexo g 重新生成网站静态文件,把目录发布到云服务器的 web服务器 根目录,重新查看文档源码,可以看到 data-path 的值跟数据库的 url 值保持一致了,文章中的阅读次数也能够正常显示了
upload successful

# 评论通知

评论通知我这边选择了微信和邮箱这两种方式,微信是通过公众号 方糖 (原 Server 醬) 订阅通知,先在微信添加 方糖 公众号并注册

# Server 醬

在云服务器的 waline 根目录下,编辑 .env 环境变量文件,添加以下信息

l
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 服务,配置正常此时公众号可以收到一条测试信息
upload successful

# 邮箱通知

添加邮箱通知,编辑 waline 根目录下的 .env 环境变量文件,这里以 QQ 邮箱为例,添加以下内容

l
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 文件

找到以下代码

l
if (
        [wechat, qq, telegram, qywxAmWechat, pushplus, discord, lark].every(
          think.isEmpty,
        )   
      ) { 
        mailList.push({ to: AUTHOR, title, content }); 
      }   
    }

如果你想同时使用邮箱和其他应用的通知方式,则删除数组中对应的应用程序名称,例如微信 (wechat),然后保存重启 waline 服务即可

我目前遇到的就这几个问题,如果大家在使用中遇到其它问题,欢迎留言一起讨论

此文章已被阅读次数:正在加载...Edited on

Give me a cup of [coffee]~( ̄▽ ̄)~*

Bob WeChat Pay

WeChat Pay

Bob PayPal

PayPal

Bob Alipay

Alipay