果不其然,免费才是是最贵的,出差在外 jsDelivr 挂掉导致网站加载变慢,同时 npm库同样因为 jsDelivr 无法加载,最终jsDelivr导致Waline评论无法显示,jsdelivr国内无法访问…

好在 天一生水 及时告知在Waline评论留言:jsDelivr国内挂了,评论,很多静态资源都加载不了了。真的是出差在外也不消停啊,上周还在吐槽七牛云图床居然欠费,CDN回源流出流量才免费,这周Waline评论又TMD无法显示了。

伸手党终究是要解决问题的…

更换CDN解决jsDelivr导致Waline评论无法显示

  1. HUGO 添加 Waline 评论时,在HUGO模版的Head头文件里,曾经添加过一段 npm 引入的代码。
  2. 很明显,CDN 加速就是 jsdelivr.net,还包括一些 CSS 等文件都由 cdn.jsdelivr.net 引用,那么为了速度,肯定需要替换CDN为UNPKG
原始CDN:<script src="//cdn.jsdelivr.net/npm/@waline/client"></script>
更新CDN:<script src="https://unpkg.com/@waline/client@v2/dist/waline.js"></script>
  1. 也可以直接将npm库直接更换为 unpkg.zhimg.com

  2. 以上这么操作,虽然更换的CDN,但并没有解决我自己关于jsDelivr导致Waline评论无法显示的问题,我后来发现问题还是在vercel 上。

  3. 因为 vercel 调用 Github 中 Waline 的模板,检查后发现,这 Waline 模版中,就使用 cdn.jsdelivr.net 加速了,导致在vercel中部署的例子一样还是输出为 cdn.jsdelivr.net 。

  4. 先想了办法 修改 Github 库,在自己调用,后来发现其实都是多余的,因为 Waline 的最新版本已经优化过CDN解决jsDelivr导致Waline评论无法显示的问题。那就直接重新部署新的例子就好了。

  5. 包括 Waline 官方,也是推荐使用 Unpkg 来引入客户端。

    <script src="https://unpkg.com/@waline/client@v2/dist/waline.js"></script>
    
    <!-- 样式文件 -->
    <link
    rel="stylesheet"
    href="https://unpkg.com/@waline/client@v2/dist/waline.css"
    />
    
  6. 最后在 HUGO 模版的 single.html 中加入对应的 Waline 评论脚本就好了。

    <div id="waline"></div>
      <script>
        Waline.init({
          el: '#waline',
          serverURL: 'https://your-domain.vercel.app',
        });
      </script>
    
  7. Waline评论的客户端管理,https://your-domain.vercel.app/ui/register

  8. 因为 Leancloud 的数据没变动,所以除ID、KEY 等值没变动,所以重建 vercel 重新部署过往的Waline评论数据都还在。

周末的中午,最终通过更换CDN,顺利解决jsDelivr导致Waline评论无法显示的问题