文章目录
  1. 1. 定位问题
  2. 2. 解决问题
    1. 2.1. 替换掉Valine
    2. 2.2. 解决历史评论无法显示的问题
  3. 3. 思考

终于又一个历史遗留问题得到了解决。

起因是打算把平时经常接触到的网赚信息分享出来,几年了,自己又不太用得上,就这么都浪费了挺可惜的。但是如果没有评论系统的话,很影响互动,所以无论如何也要先修复了。

定位问题

这次一共有两个问题:第一是 av-min.js 又报错了,大概是被 LeanCloud 拒绝访问了;第二个是 LeanCloud 里的历史评论无法显示出来。

解决问题

替换掉Valine

本来一开始没有想到需要替换掉评论系统,只是偶然google到一个博主的博文中,提到了 Walinehttps://waline.js.org/)这个从 Valine 衍生的带后端评论系统。据说可以将 Waline 理解为 With backend Valine。

仔细阅读了以后,发现极为符合我的需求。首先,客户端不再直接连接 LeanCloud ,也就是说有一个 Waline 官方提供的统一服务端来处理与 LeanCloud 的交互,非常有可能我们不用再处理 LeanCloud 频繁改动带来的连接问题;其次,Waline 不但提供了极其丰富的自定义配置和部署方式,而且文档比较完备,步骤相当简单。

当然,缺点也不是没有。一方面是依赖于 Waline 的核心服务端代码,另一方面最简单的迁移方式还是需要 LeanCloud 的服务,总之就是高度依赖于第三方服务。然而这点问题对于它给我带来的好处而言,完全可以忽略不计。

这里的步骤已经非常清晰了(https://waline.js.org/guide/get-started/),而且由于 Waline 的数据结构完全兼容 Valine,所以工作量非常小,跟着教程走就行。

这里只简单说一下几个要点:

1、国内版 LeanCloud 必须使用有备案的域名,并且由于 Waline 要使用api接口,所以还需要在 Vercel 中配置 LEAN_SERVER 这个变量, 而这个变量在 LeanCloud 上进行绑定时,部署证书的时间长得可怕,而且没有部署完是无法正常访问评论的。这一步一定耐心等待(除非你不打算用 LeanCloud ,而改用其他数据库)。

绑定 LeanCloud API域名

配置 Vercel 变量

2、后端评论管理只需要记住 [二级域名].vercel.app 就可以了,没有必要自己绑定专有。这里对应 这一步

3、客户端引入的时候,如果是普通的浏览器脚本引入方式,例如:

1
<script src="https://cdn.jsdelivr.net/npm/@waline/client@3/dist/waline.umd.min.js"></script>

那么初始化部分记得写成:

1
2
3
4
Waline.init({
el: '<%= theme.waline.waline_el %>',
serverURL: '<%= theme.waline.waline_server %>',
});

这里对应 “HTML 引入 (客户端)” 的第2步

4、最后记得先去 [二级域名].vercel.app/ui/register 注册成为管理员,这样可以更方便的通过域名进行评论管理。

解决历史评论无法显示的问题

其实问题我早就猜到了,但是由于前面 Valine 访问 LeanCloud 的问题,修改了也看不到,无法验证。

在彻底换成 Waline 以后,问题也就轻易的暴露出来,就是我修改了文章的路径,评论系统无法通过 url 参数获取到对应的评论了。所以数据导出来,一个python脚本搞定,再导回去就结束了。

思考

其实在过程中我也看了关于 Valine 的解决方案,这里也推荐大家有时间也可以搜索了看一下,其实对理解它的工作流程很有帮助,这也有助于自己进行项目设计,规避设计风险。

在 Waline 的实施过程中,其实我还尝试了 Vercel腾讯云CloudBase 两种部署方式,也尝试了 LeanCloudMongoDBMySQLSQLite腾讯云CloudBase 五种数据库连接方式。其中 腾讯云CloudBase 因为现在是要收费的,不推荐, MongoDB 服务端无法访问(端口确认开放,域名也加入白名单,目前没能找到解决方案)。这个过程中我发现 Waline 开发者相当用心,因为文档详尽才能让我快速的尝试这么多方案,而 快速上手文档 中则是选择了可行性最高、最易操作的组合,真是非常棒!

♦ 本文固定连接:https://www.gsgundam.com/2024/2024-03-25-z08-change-valine-to-waline-in-hexo/

♦ 转载请注明:GSGundam 2024年03月25日发布于 GSGUNDAM砍柴工

♦ 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

♦ 原创不易,如果页面上有适合你的广告,不妨点击一下看看,支持作者。(广告来源:Google Adsense)

♦ 本文总阅读量