前言
今天尝试把博客加入谷歌搜索和百度搜索,网站所有权验证什么的都没什么问题,最后到添加sitemap的时候,百度那边添加完了没有任何提示,而谷歌这边显示sitemap文件有错误:“可以读取站点地图文件但网址无法访问”。检查sitemap文件发现里面的网址是这样的:https://www.yoursite.com/about/index.html
。
很明显这不对,应该吧www.yoursite.com
换成自己的域名才对嘛。我使用的是Nexo的插件“hexo-generator-sitemap”和“hexo-generator-baidu-sitemap”来自动生成sitemap文件,生成sitemap文件的sitemap模板一直不知道怎么调整,也一直找不到文档,折腾了好几个小时才终于弄好。这篇博客记录一下修改模板的方法。
具体过程
第一步:安装插件
百度的站点地图跟谷歌的不一样,所以有两个插件,分别用来生成百度和谷歌的站点地图文件1
2npm install hexo-generator-sitemap --save
npm install hexo-generator-baidu-sitemap --save第二步:配置Hexo的_config.yml文件
在文件的末尾添加如下内容:1
2
3
4
5# 自动生成sitemap
sitemap:
path: sitemap.xml
baidusitemap:
path: baidusitemap.xml第三步:修改sitemap文件模板:
谷歌的:修改“node_modules\hexo-generator-sitemap\sitemap.xml”文件第5行
默认的是这样的:
1
<loc>{{ post.permalink | uriencode }}</loc>
修改后是这样的:
1
2# 把域名替换成自己的即可
<loc>https://www.xiewenqi.com/{{ post.path }}</loc>
百度的:修改“node_modules\hexo-generator-baidu-sitemap\baidusitemap.ejs”文件第14行
默认的是这样的:
1
<loc><%- encodeURI(url + post.path) %></loc>
修改后是这样的
1
2# 把域名替换成自己的即可
<loc><%- encodeURI("https://www.xiewenqi.com/" + post.path) %></loc>
第四步:生成sitemap文件:
执行Hexo命令:hexo g
,然后就可以在博客文件夹的“public”文件夹下看到两个新生成的sitemap文件了。