前言
- 搜索功能无效,一直在哪转圈圈,头都晕了
- 说起就来气,添加了那么多篇文章,突然就这几天就不可以用hexo的搜索功能,我写了那么多篇文章突然今天写项目发现不记得想来查一下居然用不了气得我
- 横看竖看都不知道错哪里,配置了好几遍也是不行
- 最后还是被我ko了
- 赶紧记录下来下一次就不用怕了
所需工具/资料
- mac 10.13.3
- VS code (软件很多自己喜欢,这个失败了一会说原因)
- Chrome
- Sublime (这个是解决问题的关键哦)
开始ko错误之旅
查错第一步(其实和安装没有啥区别)
- 查看package
- 根目录 package.json
看看有没有 hexo-generator-searchdb 看这个的主要原因的看看有没有安装这个中间件,如果没有安装就安装一下1
$ npm install hexo-generator-searchdb --save
- 查看 /themes/next/_config.yml 配置
- 搜索 local_search看看这个下面的enable 是否处于
1
2local_search:
enable: true
- 查看添加配置(这个我个人觉得嘛加和不加没有区别)
- 添加 /themes/next/_config.yml
1
2
3
4
5search:
path: search.xml
field: post
format: html
limit: 10000
查错第二步
- 有可能是文字的数量太多引起的
- 可以修改刚才配置的 search:内的limit 把数值加大试试
- 查看文件名什么的有没有定义错误或者是什么弄错了
- 直接 sudo hexo g 打包就知道了,如果报错了那就是文件有问题
查错第三步(关键,很多的问题会出在这里)
- 有可能是文章内部的一下符号引起的错误 (我就知道是这样引起的为什么不执行我真的不懂)(这样的错误有可能是因为跟编辑器或者输入法有关系)
- 字符错误 Bytes: 0x08 0xE4 0xB8 0x80 其实也是空格只是不识别的软件才可以看的出了
- 在我们的 vs code 这个软件呢就是识别了这种符号所以并没有显示出了 在我们的Sublime 就是不识别直接就可以显示出来了
解决问题方法一 (这些只可以在sublime或者其他的软件中做,vs code不可以的哦)
- 直接就在 search.xml 文件中 直接搜索 \x08 或者 \u0008删掉
- 但是呢这样的方法治标不治本啊
- 在你下一次的添加文件编译的时候还是会带上的
解决方法二(方法一治标不治本那我们再来一个方法)
- 直接找到错误文件 这里我是把文件都考出来然后把一些比较早点文件先放回去
- 然后后面都文件一个一个那样去测试找到错误文件 (主要是我一开始不知道是这样的错误才那样去找)
- 现在知道了错误直接就在 Sublime 打开所有的md看看有没有 上面的错误字符 有就删掉就可以了
- 这个是我的错误(每个人的都可能不一样)
后记
- 终于吐槽完,也说完错误了,这是我个人的一个查错以及解决的方法,希望有缘人看到可以帮到你
- 这些都是我的一些笔记,欢迎一起学习讨论
- 欢迎进入我的博客:https://yhf7.github.io/
- 如果有什么侵权的话,请及时添加小编微信以及qq也可以来告诉小编(905477376微信qq通用),谢谢!