Как используется карта сайта, определяется поисковой системой. Некоторые будут индексировать только то, что у вас есть в карте сайта, в то время как другие будут использовать это как отправную точку и сканировать весь сайт на основе перекрестных ссылок.
Что касается включения не сгенерированных страниц, мы просто создали подкласс django.contrib.sitemaps.Sitemap и просматриваем его в виде простого текстового файла с одним URL на строку. Что-то вроде:
class StaticSitemap(Sitemap):
priority = 0.8
lastmod = datetime.datetime.now()
def __init__(self, filename):
self._urls = []
try:
f = open(filename, 'rb')
except:
return
tmp = []
for x in f:
x = re.sub(r"\s*#.*$", '', x) # strip comments
if re.match('^\s*$', x):
continue # ignore blank lines
x = string.strip(x) # clean leading/trailing whitespace
x = re.sub(' ', '%20', x) # convert spaces
if not x.startswith('/'):
x = '/' + x
tmp.append(x)
f.close()
self._urls = tmp
# __init__
def items(self):
return self._urls
def location(self, obj):
return obj
Вы можете вызвать его с помощью чего-то вроде этого в своей основной программе сайта:
sitemap['static'] = StaticSitemap(settings.DIR_ROOT +'/sitemap.txt')
И наш файл sitemap.txt выглядит примерно так:
# One URL per line.
# All paths start from root - i.e., with a leading /
# Blank lines are OK.
/tour/
/podcast_archive/
/related_sites/
/survey/
/youtube_videos/
/teachers/
/workshops/
/workshop_listing_info/
/aboutus/
/history/
/investment/
/business/
/contact/
/privacy_policy/
/graphic_specs/
/help_desk/