关于valine评论国际版无法提交的问题原因分析和解决方案

浏览了一番文章,想写两句评论。

结果发现

img

这就有意思了,评论无法提交。

问题

出现了问题,我们就去leancloud的管理平台进行修改。

发现他没有定义一个实例。

问题1

类和实例

为什么一定要定义一个实例才能运行呢?

类相当于一张汽车的「制造图纸」,你可以通过这个「图纸」来制造出许许多多汽车,甚至可以改变「图纸」,造出不同样式的汽车。

但是如果只有图纸,没有创建出一个真正的汽车实例,我们是永远都无法进行「开车」这个操作的。

可以说有了类就有了对象,就有了对对象的操作。

解决办法

办法也很简单,创建一个实例。

valine评论搭建

可以参考这篇文章进行实例搭建。

问题2

在创建完对应的实例以后,发现评论还是无法运作。

img

这里最重要的一点是云函数的问题。

通常发生在国际服的比较多,华北和华东服务器尚未出现过此类问题。

可以看到部署在华东服务器上面的实例有三个云函数,其中两个是我自己添加的。

但是最重要的comment函数是程序写的。

这个函数负责的评论的存储与管理,非常重要。

如果选择国际服,就有可能无法加载出这个函数。

原因

此 bug 是由于 LeanCloud 国际版更换 API Url 导致的,原来的 us.leancloud.cnus-api.leancloud.cn 已经停用,换为了 APPID前八位.api.lncldglobal.com

解决办法

① 在 Valine.min.js 中更换 LeanCloud 对象存储 SDK 为 最新的 4.12.0 版本。
leancloud-storage@3/ –> leancloud-storage@4.12.0/,查找替换即可。
如果你使用 CDN,可以 Fork 一份 Valine 的 GitHub 仓库,然后自行更改并使用 jsdelivr CDN 。
我已经改好了一份:链接 ,如有需要可以自取。
② 在引用 Valine 的 js 或 YAML 中设置 serverURLs 字段为 APPID前八位.api.lncldglobal.com
比如 serverURLs: 'https://xxxxxxxx.api.lncldglobal.com'

这个办法虽然可行,但是操作麻烦,而且不兼容部分CDN加速。

比较简单的方法就是选择华北和华东服务器,因为服务器处在国内,比较稳定。

但是使用这两个服务器要遵守《中华人民共和国网络安全法》,需要进行实名备案注册。

而且备案注册必须使用支付宝的刷脸进行认证,优点就是成功率非常高,能够解决大部分问题。

小结

在搭建个人博客的时候,服务器能采用国内的服务器,就尽量使用国内的服务器。

因为网络长城的存在及国际政治不稳定因素,很容易造成连接中断或连接被污染迟缓等等问题。


关于valine评论国际版无法提交的问题原因分析和解决方案
https://blog.windeling.com/202308258455/
作者
黄文林
发布于
2023年8月25日
更新于
2025年5月8日
许可协议