我正在为Jekyll使用jekyll-sitemap插件。
有没有办法在assets
文件夹中排除.html文件?
其中一些包含一些HTML示例,我最终在我的sitemaps.xml中有类似下面的内容,这没有任何意义:
<url>
<loc>https://example.com/blog/assets/vanilla-lazyload/demos/with_picture.html</loc>
<lastmod>2017-11-18T15:05:22+01:00</lastmod>
</url>
其中with_picture.html
是Javascript库的演示文件,在使用npm install
时附带它(我无法为每个库每次都删除它们)
According to the docs,在前面的问题中使用sitemap: false
应该解决它,但它似乎并没有起作用。
因为我在这些供应商文件中没有任何前端问题,所以我使用Jekyll's Front Matter defaults method这样做,但没有成功。
# in my _config.yml
defaults:
- scope:
path: 'assets/'
values:
sitemap: false
我还试过以下path
但没有运气:
路径:&#34;资产&#34;
可能是path: 'assets'
不会&#39;考虑子文件夹?
答案 0 :(得分:0)
在_config.yml文件中,添加:
exclude :
- assets/vanilla-lazyload/demos
答案 1 :(得分:0)
如果您的Jekyll版本为v3.7.2
或更高版本,而您的jekyll-sitemap
版本为v1.2.0
或更高版本,则该方法可以正常工作:
defaults:
-
scope:
path: 'assets/**'
values:
sitemap: false
**
将匹配assets
目录或其任何子目录中的任何文件。
答案 2 :(得分:0)
无需插件,您也可以轻松创建自己的站点地图:在 jekyll 主文件夹中创建一个名为“sitemap.xml”的文件,如_post、_pages 和 _includes 旁边。
所有需要包含的文件如下:
---
layout: null
---
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
{% for post in site.posts %}
<url>
<loc>{{ site.url }}{{ post.url }}</loc>
{% if post.lastmod == null %}
<lastmod>{{ post.date | date_to_xmlschema }}</lastmod>
{% else %}
<lastmod>{{ post.lastmod | date_to_xmlschema }}</lastmod>
{% endif %}
<changefreq>monthly</changefreq>
<priority>1.0</priority>
</url>
{% endfor %}
{% for page in site.pages %}
{% if page.sitemap != null and page.sitemap != empty %}
<url>
<loc>{{ site.url }}{{ page.url }}</loc>
<lastmod>{{ page.sitemap.lastmod | date_to_xmlschema }}</lastmod>
<changefreq>{{ page.sitemap.changefreq }}</changefreq>
<priority>{{ page.sitemap.priority }}</priority>
</url>
{% endif %}
{% endfor %}
</urlset>