果不其然,免费才是是最贵的,出差在外 jsDelivr 挂掉导致网站加载变慢,同时 npm库同样因为 jsDelivr 无法加载,最终jsDelivr导致Waline评论无法显示,jsdelivr国内无法访问…
好在 天一生水 及时告知在Waline评论留言:jsDelivr国内挂了,评论,很多静态资源都加载不了了。真的是出差在外也不消停啊,上周还在吐槽七牛云图床居然欠费,CDN回源流出流量才免费,这周Waline评论又TMD无法显示了。
伸手党终究是要解决问题的…
更换CDN解决jsDelivr导致Waline评论无法显示
- HUGO 添加 Waline 评论时,在HUGO模版的Head头文件里,曾经添加过一段 npm 引入的代码。
- 很明显,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>
-
也可以直接将npm库直接更换为 unpkg.zhimg.com
-
以上这么操作,虽然更换的CDN,但并没有解决我自己关于jsDelivr导致Waline评论无法显示的问题,我后来发现问题还是在vercel 上。
-
因为 vercel 调用 Github 中 Waline 的模板,检查后发现,这 Waline 模版中,就使用 cdn.jsdelivr.net 加速了,导致在vercel中部署的例子一样还是输出为 cdn.jsdelivr.net 。
-
先想了办法 修改 Github 库,在自己调用,后来发现其实都是多余的,因为 Waline 的最新版本已经优化过CDN解决jsDelivr导致Waline评论无法显示的问题。那就直接重新部署新的例子就好了。
-
包括 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" />
-
最后在 HUGO 模版的 single.html 中加入对应的 Waline 评论脚本就好了。
<div id="waline"></div> <script> Waline.init({ el: '#waline', serverURL: 'https://your-domain.vercel.app', }); </script>
-
Waline评论的客户端管理,https://your-domain.vercel.app/ui/register
-
因为 Leancloud 的数据没变动,所以除ID、KEY 等值没变动,所以重建 vercel 重新部署过往的Waline评论数据都还在。
周末的中午,最终通过更换CDN,顺利解决jsDelivr导致Waline评论无法显示的问题