修复url添加后缀index.html twikoo评论不显示的问题
前言
刚才突然发现评论不显示,仔细看了一眼是由于permalink导致的,同一页面会有两个链接,一个带index.html后缀,一个不带,twikoo默认行为是以uri发起评论查询请求,这就是评论不显示的原因。
看了别人的解决方法,需要修改js渲染时的twikoo.Init()
这个方法,也就是添加path
但这个方法对我来说不管用,不知道是不是我的问题,于是决定自己动手莫改一下
太长不看省流版
- 第一种方法,即上面提到的添加path
- 第二种方法,修改twikoo后端,在收到请求后使其去掉index.html
- 第三种方法,不推荐但很简单暴力。扫库后添加需要修改的记录(双倍数据量)
我使用的方法
找到你的twikoo引用代码,修改插入数据库的代码data.url = data.url.replace(/index\.html$/, "");
在save前面添加一句即可
思路
我这里是用的twikoo-vercel,先分析提交评论的代码
我这里用的是网络分析法定位关键字。先随便发一个请求看看关键字
关键字很明显为COMMENT
直接去仓库里搜COMMENT
相关代码
最终定位到调用方法 commentSubmit
定位是定位到了,该怎么改呢
这里有个data
参数,我们的目的是要把提交的url后的字段index.html给替换掉,这里还需要知道data的结构长什么样
有两个方法,从前端请求或者直接查数据库看看结构是怎么样的。我选择直接查数据库.
关于连接数据库这里不再赘述,看官网指引或者百度都可以
素质三连看一下
马上就可以得知data
的数据结构长什么样了
还是不理解的话可以再跟进代码看看这个data
和数据库交互的save()
方法
这其实就很明显了,这里直接加一句data.url = data.url.replace(/index\.html$/, "");
任务就完成了
在save前面添加一句即可
但还有一个问题,之前已经出问题的评论怎么办
这里有两种方法解决
- 写程序查库然后一个个修改
- 在
getcomment
方法再加一句和上面同样的语句
查库版
import pymongo |
修改twikoo源码版
当然改完还要部署到vercel上,需要修改package.json
添加version信息(否则设置按钮不会显示),还要把修改后的代码整个加进去。
详情请见我的仓库