有两种方案
第一种方案、
将相应的sitemap文件放入网站的templates文件夹中同时在网站的根urls文件中添加如下代码
from django.views.generic import TemplateView
urlpatterns = [
re_path(r'^sitemap\.xml', TemplateView.as_view(template_name='sitemap.xml',content_type='text/xml')),
re_path(r'^sitemap\.html$', TemplateView.as_view(template_name='sitemap.html',content_type='text/html')),
re_path(r'^sitemap\.txt$', TemplateView.as_view(template_name='sitemap.txt',content_type='text/text')),
]
urls.py中加入新的urlpattern,用TemplateView去展示
第二种方案、
直接交给nginx来处理,在nginx的conf文件中加入要处理的static URL和路径
location /sitemap.xml {
alias /path/to/static/sitemap.xml;
}
我有的第一种方法测试成功,可以成功被百度等识别,第二种的我没测试
参考:http://stackoverflow.com/questions/18424260/django-serving-robots-txt-efficiently