起因:
最近遇到一个非常奇怪的bug,那就是本来一直非常好用的Hexo博客的搜索功能突然失灵了, 一直处于loading动画,这让我百思不得其解。
幸好,经过数小时的各种尝试后,问题已经解决了,这里记录一下解决的方法,帮助后来遇到该问题的同学。
尝试:
在尝试过更换浏览器、清空缓存、更换电脑、手机打开均无果之后,一度怀疑是配置文件设置的问题,经历数小时的检查,发现并非配置文件问题,同时受到该篇文章的启发,才想起里查看Chrome的报错信息。
这里是问题解决后才截得图,但是不影响叙述问题的解决流程,这里大致说一下。
解决:
- 首先通过Chrome浏览器的检查(审查元素)功能,记录一次鼠标点击
search
或搜索
按钮时的请求与响应 - 然后点击
network
按钮,进入网络相关模块,并选择all
,找到search.xml
这一项 - 然后进入到如上图所示页面,如果这里有问题,或在
<entry>
标签前说明存在问题的文件,最简单的方法就是先将其移除
总结:
该问题主要由于书写的.md
文件中包含了一些奇怪的、不合法的字符,导致在解析这些内容时报解析异常错误。
该错误最具迷惑性的是http响应状态是 200,使人不会第一时间想到问题的源头,而去从配置文件入手,从而浪费大量时间
补充:出错的字符是一个退格键,在你最近的md文件中,使用正则表达式搜索 \x08 或者 \u0008就行。