Django有效创建站点地图

时间:2019-07-18 10:46:43

标签: django django-models django-views

我想要这样有效地创建站点地图;

sitename.com/post-sitemap.xml
sitename.com/team-sitemap.xml

我该怎么办?

sitemaps.py

class PostSitemap(Sitemap):
    changefreq = "never"
    priority = 0.5

    def items(self):
        return Post.objects.published()

    def lastmod(self, obj):
        return obj.created_date

1 个答案:

答案 0 :(得分:1)

推荐的站点地图结构

https://example.com/sitemap.xml

sitemap.xml可以包含子站点地图,例如

<sitemapindex xmlns="http://www.google.com/schemas/sitemap/0.84">
<sitemap>
<loc>https://www.google.com/gmail/sitemap.xml</loc>
</sitemap>
<sitemap>
<loc>https://www.google.com/forms/sitemaps.xml</loc>
</sitemap>
<sitemap>
<loc>https://www.google.com/slides/sitemaps.xml</loc>
</sitemap>
<sitemap>
<loc>https://www.google.com/sheets/sitemaps.xml</loc>
</sitemap>
</sitemapindex>

在Django中生成站点地图

from django.contrib.sitemaps import views

sitemaps = {
    'team': TeamSitemap, 'post': PostSitemap
}

urlpatterns = [
    path('sitemap.xml', views.index, {'sitemaps': sitemaps}),
    path('sitemap-<section>.xml', views.sitemap, {'sitemaps': sitemaps},
         name='django.contrib.sitemaps.views.sitemap'),
]