1
是否有一種方法可以將自定義站點添加到站點地圖中?我想將我的主頁添加到站點地圖中,但我不使用flatpages
。Django站點地圖 - 將loc添加到站點地圖
我應該開始使用flatpages並手動將主頁添加到數據庫中嗎?你推薦哪種方法?我使用django.contrib.sitemaps
來生成站點地圖。
是否有一種方法可以將自定義站點添加到站點地圖中?我想將我的主頁添加到站點地圖中,但我不使用flatpages
。Django站點地圖 - 將loc添加到站點地圖
我應該開始使用flatpages並手動將主頁添加到數據庫中嗎?你推薦哪種方法?我使用django.contrib.sitemaps
來生成站點地圖。
您可以定義特定視圖站點地圖,否則不包括在該網站的站點地圖,因爲在一個下面我爲我自己的Django應用程序開發:
from django.core.urlresolvers import reverse
from django.contrib.sitemaps import Sitemap
class StaticSitemap(Sitemap):
"""Reverse static views for XML sitemap."""
def __init__(self, items_in=[]):
self.items_list = items_in
def items(self):
# Return list of url names for views to include in sitemap
return self.items_list
def location(self, item):
# if kwargs not in item set as None
kwargs = item['kwargs'] if 'kwargs' in item else None
return reverse(item['view_name'], kwargs=kwargs)
這基本上反轉視圖名稱(如在urls.py
中指定)轉換爲將在站點地圖中顯示的實際URL。
使用
指定urls.py
您sitemap.xml
網址,以便它需要一個sitemaps
參數如下urls.py
提取物:
...
(
r'^sitemap\.xml$',
'django.contrib.sitemaps.views.sitemap',
{'sitemaps': sitemaps}
),
...
的sitemaps
字典應該簡單地包括如條目:
sitemaps = {
'views': StaticSitemap(STATIC_VIEWS),
...
}
其中STATIC_VIEWS
以這種方式構建:
STATIC_URLS = [
'home_page', 'about_page', 'disclaimer_page', # any other view name
]
STATIC_VIEWS = []
for url in STATIC_URLS:
STATIC_VIEWS.append({'view_name':url})