我的 Jekyll 网站站点地图中的意外网址

Unexpected urls in my Jekyll website sitemap

我正在使用 Jekyll 创建我的个人博客 (davioooh.com) 并将其托管在 GitHub 个页面上。

不过我最近发现了一个奇怪的事情...

当 pushed/deployed 到我的存储库时,博客 sitemap.xml 包含两个额外的 url:

<url>
  <loc>
    http://davioooh.com/assets/javascript/anchor-js/docs/grunticon/preview.html
  </loc>
  <lastmod>2017-08-11T16:40:49+00:00</lastmod>
</url>
<url>
  <loc>
    http://davioooh.com/assets/javascript/anchor-js/docs/index.html
  </loc>
  <lastmod>2017-08-11T16:40:49+00:00</lastmod>
</url>

我不明白为什么...我没有使用任何 anchor-js gem 或插件...

在我的 _config.ymlGemfile 中声明的唯一 gem 是:

gems:
  - jekyll-feed
  - jekyll-seo-tag
  - jekyll-paginate
  - jekyll-sitemap

那我为什么要得到那个网址?

注意:当我在我的开发机器上本地测试站点时,站点地图是正确的。

注意:我使用的是自定义主题(常规主题,不是基于 gem 的)。我的 _config.yml 中没有声明主题。在这里您可以找到我的博客存储库:https://github.com/davioooh/davioooh.github.io

UPDATE 尝试按照 的建议在我的 Gemfile 中用 github-pages 替换 jekyll gem马卡努伊。它在本地工作,但在新的推送站点地图后仍然包含额外的 urls...

更新 找到 GitHub 页 reference 列出了 Jekyll 网站的默认参数。正如预期的那样,默认主题是 jekyll-theme-primer。如果我不使用基于 gem 的主题,如何覆盖此设置?

它来自你的主题:jekyll-theme-primer

Primer 是 GitHub 前端的强大功能。如果您没有明确使用这个主题,它可能来自 GitHub Pages 自己对 Primer 框架的使用

为什么它在本地运行良好?

因为您没有使用相同的依赖项 Github Pages 使用。要复制 Github 使用的环境,您需要使用 gem:github-pages.

为什么 sitemap.xml 包含两个额外的 url?

正如@ashmaroli 所说,这些文件来自 jekyll-theme-primer 被 Github 页面使用,如果您使用自己的主题文件,那么只需确保没有 theme: 输入 _config.yml 和 运行 bundle update。使用正确的 github-pages gem 将修复它,这些文件将不会包含在您的最终站点中。

似乎更新到 github 页 v157 站点地图已正确生成。

new version of gh-pages 支持最新版本 jekyll-theme-primer (v0.5.2)。

这解决了我的问题。

1. 显然,jekyll-theme-primer(通常在您的 Gemfile 中带有 group: :jekyll_plugins)是罪魁祸首。 IE。 theme: minima 避免了 anchor-js 的创建(但你可能想要 运行 你自己的主题,而不是让最小值徘徊......)

2. 一个经过验证的简单修复(在构建时发出警告)是写

theme: false

在你的 _config.yml

3. 问题 is a known issue and has been fixed 3 days before 我写这个。可能几天(或几周)直到它被发货。如果您从现在开始读到这篇文章,可能您只需要更新您的宝石。