在Django中为超过50000个URL创建站点地图

时间:2014-12-21 06:52:16

标签: python django sitemap django-sitemaps

我的站点地图中有大约60000个网址,而且这个数字每天都会增长5000个。

Google建议在一个站点地图中只有50K网址,如果数量超过,则创建另一个站点地图。

所以,目前我在项目的urls.py中有以下代码生成站点地图

video_map = {
    'queryset': Video.objects.all(),
    'date_field': 'pub_date',
}

sitemaps = {
    'static': StaticViewSitemap,
    'blog': GenericSitemap(info_dict, priority=0.5,changefreq="daily"),
    'videos': GenericSitemap(video_map, priority=0.2,changefreq="daily"),
}

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}),
)

我想要的是在网址数量超过50000后创建第二个站点地图,在网址数量超过100K后创建第三个站点地图。

我阅读了Django文档,但无法理解它(如何为每个50000网址生成单独的站点地图。)这里的问题How to create index for django sitemaps for over 50.000 urls

由于

1 个答案:

答案 0 :(得分:1)

来自documentation

  

站点地图框架还可以创建站点地图索引   引用单个站点地图文件,每个部分定义一个   在您的站点地图字典中。

您可以使用相同的sitemaps对象并将其传递给django.contrib.sitemaps.views.index(),它将引用个人(分页)站点地图:

urlpatterns = patterns('django.contrib.sitemaps.views',
    (r'^sitemap\.xml$', 'index', {'sitemaps': sitemaps}),
    (r'^sitemap-(?P<section>.+)\.xml$', 'sitemap', {'sitemaps': sitemaps}),
)