2014-05-07 56 views
3

我爲我的Django網站創建了一個sitemap index,因爲我有超過50k的URL。 Django說它爲我自動分頁,但我無法訪問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中「學校」的分頁網站地圖結果?

+0

在Django的觀點看代碼似乎分頁被評爲不'+的正則表達式''p'和GET參數處理。正則表達式的'。+'部分是用於節名稱而不是分頁。 https://github.com/django/django/blob/master/django/contrib/sitemaps/views.py – sagarchalise

+0

是的,正確的。感謝您澄清並提供準確文檔的鏈接。 – wsvincent

回答

1

您在您的網址中缺少\

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

應該

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

漂亮!現在修復。 – wsvincent