sitemap的作用
通过这个站点可以查看一下自己网站的sitemap,从而可以查询到相关的浏览器索引项目http://www.sitemap-xml.org/
如果主页没有到index.html,而是跳转到其他的页面,可能2会出现无法索引的情况。
Sitemap 可方便网站管理员通知搜索引擎他们网站上有哪些可供抓取的网页。基本上所有的搜索引擎都集成了各自的sitemap爬取方式供浏览器来调用。每个公司也设置了自己的sitemap格式形式,但是基本还是类似的。
sitemap 的 django实现
在setting.py的INSTALLED_APPS 里面添加django.contrib.sitemaps
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'django.contrib.sitemaps',
'django_comments',
'blog',
'pagination',
'tagging',
'mshow',
'pagedown',
'markdown_deux',
]
修改相关的Templates配置
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,'templates').replace('\\', '/'),],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.media',
'django.core.context_processors.request',
],
},
},
]
添加urls 到根目录以及相应的sitemaps
sitemaps = {
'blog': GenericSitemap({'queryset': Entry.objects.all(), 'date_field': 'publication_date'}, priority=0.6),
}
urlpatterns = [
url(r'^$', views.blog, name="index"),
url(r'^admin/', admin.site.urls),
url(r'^mshow/', include('mshow.urls', namespace='mshow')),
url(r'^blog/', include('blog.urls', namespace='blog')),
url(r'^comments/', include('django_comments.urls')),
url(r'^media/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT}),
url(r'^sitemap\.xml$', sitemap, {'sitemaps': sitemaps},name='django.contrib.sitemaps.views.sitemap'),
]
在models里面添加get_absolute_url
,凡是需要形成sitemap的类都需要有这个项
def get_absolute_url(self):
return "/blog/single/%i/" % self.id
完成之后访问sitemap.xml就可以访问网站的sitemap了,后面还有一些其他功能等待补充。