L
O
A
D
I
N
G

valine评论失效解决


valine评论失效解决

这几天我的博客 Valine 评论系统突然失效——既无法显示已有评论,也不能提交新评论。问题是这段时间我完全没有修改过评论系统的任何配置。

最初我怀疑是 Valine 自身更新出现了问题,但上网搜索问题后,发现不少站长都遇到了相同的问题,且都有一个共同点:都使用的 LeanCloud 国际版

所以问题应该出在 LeanCloud 国际版的服务上。

打开浏览器控制台,发现以下错误信息:

Failed to load resource: net::ERR_EMPTY_RESPONSE
us-api.leancloud.cn/…………

根据国际版域名问题 · Issue #340 · xCss/Valine,这可能是由于 LeanCloud 国际版对此域名停止支持或服务不稳定导致的。解决方案是配置自定义服务器 URL。

解决

方法一:迁移数据

导出数据并迁移到 LeanCloud 国内节点,这是一劳永逸的方法。

方法二:配置自定义服务器URL(推荐)

步骤 1:修改主题配置文件

在站点目录下的 _config.yaml 中找到 Valine 的配置,修改 serverURLs 参数:把xxxxxxxx 替换为你的 AppID 的前 8 位字符。

serverURLs: https://xxxxxxxx.api.lncldglobal.com

步骤 2:检查主题模板文件

如果主题未配置该参数,需要找到 valine.ejs 文件,在 Valine 初始化代码中添加 serverURLs 配置:

new Valine({
    el: '#comments',
    notify: '<%= theme.valine.notify %>' == 'true',
    verify: '<%= theme.valine.verify %>' == 'true',
    appId: "<%= theme.valine.appId %>",
    appKey: "<%= theme.valine.appKey %>",
    avatar: "<%= theme.valine.avatar %>",
    placeholder: "<%= theme.valine.placeholder %>",
    guest_info: guest_info.length == 0 ? GUEST_INFO : guest_info,
    pageSize: "<%= theme.valine.pageSize %>",
    serverURLs: '<%= theme.valine.serverURLs %>'  // 新增这一行!!!
})

步骤 3:更新 LeanCloud SDK 链接

根据Valine的Github的Issues区,一个大佬提出的Issue。详见:Leancloud URL bug in av.js · Issue #376 · xCss/Valine

需要将旧的CDN链接:

<script src="//cdn1.lncld.net/static/js/3.0.4/av-min.js"></script>

替换为新版本:

<script src="//code.bdstatic.com/npm/leancloud-storage@4.12.0/dist/av-min.js"></script>

再重新部署,评论已经能成功显示了。

如果上述方法仍不奏效,可以尝试替换Valine.min.js中的资源引用:

// 将原来的
src:"//cdn.jsdelivr.net/npm/leancloud-storage/dist/av-min.js"

// 替换为
src:"//code.bdstatic.com/npm/leancloud-storage@4.12.0/dist/av-min.js"

总结

通过以上三步操作,我的博客评论功能终于恢复正常:

  1. 设置 serverURLs 指向正确的国际版接口地址
  2. 确保 Valine 配置中正确定义了 serverURLs 参数
  3. 更新 av-min.js 文件到最新版本

如果你也遇到类似问题,不妨按照这个流程检查一下你的 Valine 配置。希望这篇经验分享能帮你节省大量时间!

温馨提示:在进行任何修改前,建议先备份相关配置文件,以免出现意外情况。


文章作者: loyeh
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 loyeh !
评论
  目录