Hexo全文搜索地址错误
2021-04-05 20:05
≈ 554字
≈ 2分钟
Hexo搭好已经6天了,正常使用感觉非常好,今天发现了一个问题,在使用全文搜索的时候,如果你当前的页面不是首页,那么搜索出来的地址是错误的。
跟踪了一下错误地址,发现是额外增加了当前地址造成的。
用我的网站举例,比如说当前的地址是:https://www.igerm.ee/categories/gossip/,然后我随便搜索一个内容

第一个文章的实际地址应该是:https://www.igerm.ee/2021/04/04/tech/Hexo美化优化极致追分/
但是添加在a标签里面的地址是:https://www.igerm.ee/categories/gossip/2021/04/04/tech/Hexo美化优化极致追分/这样就导致点击标题无法进入文章页面,而进入了404页面
初步猜测有可能是地址自动拼接造成的,看一下源码,我相信search部分如果没有特殊需求,大家的源码都是复制官方插件的demo,那么咱们的应该是一致的,从isMatch部分开始:
1 | if (isMatch) { |
第二行的str就是输出a标签的地方,可以看到我已经在前面添加了"<%- theme.avatar.path %>",因为data_url里面的地址是文章地址去掉网站地址的部分,如果你不在前面补全网址,那么在页面上就会自动以当前页面的地址进行拼接,也就造成了上面提到的错误,这里我将我自己网站主地址拼接完整,那么搜索出来的地址就没问题了。
