我对sitemap.xml的生成以及Django的sitemap框架特别有疑问。
假设我有一个博客应用程序,该应用程序具有每个帖子内容的post_detail页面和一堆“帮助”页面,例如“按标签查看”,“按作者查看”等。
我可能有一个自定义的django.conf.urls.defaults.url函数来注册站点 map 的url映射...您认为呢?
谢谢。
最佳答案
网站 map 的使用方式由搜索引擎决定。有些人只会索引您在站点 map 中的内容,而另一些人将其用作起点并根据交叉链接对整个网站进行爬网。
至于包括未生成的页面,我们仅创建了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
您可以在主站点 map 例程中使用类似的方法调用它:
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/
关于django - Django Sitemap框架中的静态页面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3109781/