Django documentation非常小,我似乎无法让它发挥作用。
目前我有3个单独的站点地图,我想为他们创建一个站点地图索引:
(r'^sitemap1\.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps':sitemap1}),
(r'^sitemap2\.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps':sitemap2}),
(r'^sitemap3\.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps':sitemap3}),
Django文档提到了添加以下内容:
url(r'^sitemap-(?P<section>.+)\.xml$', views.sitemap, {'sitemaps': sitemaps},name='django.contrib.sitemaps.views.sitemap'),
在这种情况下,“部分”是什么?我如何访问此索引文件?可以下载还是可以通过网址访问?
非常感谢任何帮助!
修改 基本上我想在Django中完成这个:https://support.google.com/webmasters/answer/75712
答案 0 :(得分:1)
如果您在应用中添加了命名空间(例如 include(&#39; myapp.urls&#39;,namespace =&#39; myapp&#39; ),那么您需要包含倒退时的命名空间,例如 {%url&#39; myapp:my_url_name&#39;%} 或反向(&#39; myapp:my_url_name&#39;)。
url(r'^sitemap-(?P<section>.+)\.xml$', cache_page(86400)(views.sitemap), {'sitemaps': sitemaps}, name='sitemapsname'),
url(r'^sitemap\.xml$', cache_page(86400)(views.index), {'sitemaps': sitemaps, 'sitemap_url_name': 'posts:sitemapsname'}),
注意:帖子:sitemapsname是我的应用
请参阅Django的源代码:https://github.com/django/django/blob/master/django/contrib/sitemaps/views.py
答案 1 :(得分:0)
“部分”是您在字典中定义的内容,如下所示:
<强> urls.py 强>
from .views import StaticSitemap, BlogSitemap, NewsSitemap
SITEMAPS = {
'blog': BlogSitemap,
'main': StaticSitemap,
'news': NewsSitemap,
}
这些将在您的 sitemap-blog.xml , sitemap-main.xml 和 sitemap-news.xml > sitemap.xml 索引。
这些内容在 views.py 中列出,例如:
class BlogSitemap(Sitemap):
changefreq = "never"
priority = 0.5
def items(self):
return BlogPage.objects.all()
def lastmod(self, obj):
return obj.date
def location(self, obj):
return obj.url
您不需要访问索引文件,因为Django中将使用默认值。它应该自动工作。