【发布时间】:2023-03-25 02:19:01
【问题描述】:
我已经为我的 Django 站点创建了一个sitemap index,因为我有超过 50k 个 URL。 Django 说它会自动为我分页,但我无法访问 URL 中的结果。
相关代码:
#urls.py
...
sitemaps = {
'state': StateSitemap,
'school': SchoolSitemap,
}
urlpatterns = patterns('',
....
url(r'^sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}),
url(r'^sitemap-(?P<section>.+).xml$','django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}),
)
“状态”的站点地图可以正常工作:
- www.example.com/sitemap-state.xml
但是对于有 100k+ 条目的学校,因此应该由 Django 自动分页,所有以下 404:
- www.example.com/sitemap-school.xml
- www.example.com/sitemap-school1.xml
- www.example.com/sitemap-school/1.xml
我知道我误解了“.+”作为站点地图索引 URL 的一部分是如何工作的,但我很难过。
我应该使用哪个 URL 来查看我的 URL 中“学校”的分页站点地图结果?
【问题讨论】:
-
查看 django 的视图代码,似乎分页是由名为
p的 GET 参数处理的,而不是由正则表达式的+处理的。正则表达式的.+部分用于部分名称而不是分页。 github.com/django/django/blob/master/django/contrib/sitemaps/… -
是的,正确的。感谢您澄清这一点并提供指向准确文档的链接。