解决 Docusaurus 中的本地搜索插件(@easyops-cn/docusaurus-search-local)失效问题

查阅插件文档得知需配置 docsRouteBasePath 属性与@docusaurus/preset-classic中的 routeBasePath 匹配。解决方案是在主题中将 docsRouteBasePath 配置为"/",重新打包发布后成功解决搜索问题。

主页 > 博客 > 解决 Docusaurus 中的本地搜索插件(@easyops-cn/docusaurus-search-local)失效问题

在 Docusaurus 文档项目中配置了一个本地的搜索插件(@easyops-cn/docusaurus-search-local),但是打包发布到生产环境中的时候,发现怎么也搜索不出来。

解决 Docusaurus 中的本地搜索插件(@easyops-cn/docusaurus-search-local)失效问题

定位问题

打开控制台检索后发现是 search-index.json 的问题,初步判断是项目路由的原因导致的问题。

解决 Docusaurus 中的本地搜索插件(@easyops-cn/docusaurus-search-local)失效问题

到“@easyops-cn/docusaurus-search-local”官方文档查看才发现需要设置一些配置,如下图的说明,大致说的是:对于仅文档模式的情况,确保 docsRouteBasePath 属性与 @docusaurus/preset-classic 配置中的 routeBasePath 相匹配,例如设置为 "/"

解决 Docusaurus 中的本地搜索插件(@easyops-cn/docusaurus-search-local)失效问题

解决问题

我在@docusaurus/preset-classic中的routeBasePath 里的配置是/

解决 Docusaurus 中的本地搜索插件(@easyops-cn/docusaurus-search-local)失效问题

所以我需要在主题中将docsRouteBasePath的值也配置成/

解决 Docusaurus 中的本地搜索插件(@easyops-cn/docusaurus-search-local)失效问题

配置完毕后重新打包发布,就可以成功搜索了。

解决 Docusaurus 中的本地搜索插件(@easyops-cn/docusaurus-search-local)失效问题

总结

在 Docusaurus 文档项目中,配置本地搜索插件(@easyops-cn/docusaurus-search-local)时,遇到无法在生产环境中搜索的问题。通过检查控制台发现search-index.json问题,猜测是项目路由导致的。查阅插件文档得知需配置 docsRouteBasePath 属性与@docusaurus/preset-classic中的 routeBasePath 匹配。解决方案是在主题中将 docsRouteBasePath 配置为"/",重新打包发布后成功解决搜索问题。

解决 Docusaurus 中的本地搜索插件(@easyops-cn/docusaurus-search-local)失效问题
查阅插件文档得知需配置 docsRouteBasePath 属性与@docusaurus/preset-classic中的 routeBasePath 匹配。解决方案是在主题中将 docsRouteBasePath 配置为”/”,重新打包发布后成功解决搜索问题。

知识扩展: