Django的支持,内置地图,这里是一个演示:
通用/ sitemaps.py
from django.contrib.sitemaps import Sitemap
from django.urls import reverse_lazy
from news.models import News
class StaticViewSitemap(Sitemap):
priority = 0.5
changefreq = 'weekly'
def items(self):
return ['index', 'news_index', 'version', 'rss']
def location(self, item):
return reverse_lazy(item)
class NewsSitemap(Sitemap):
priority = 0.5
changefreq = 'weekly'
def items(self):
return News.objects.all().order_by('-id')
def location(self, item):
return reverse_lazy('news_detail', kwargs={'pk': item.id})
sitemaps = {
'static': StaticViewSitemap,
'news': NewsSitemap,
}
您peoject主要url.py:
from django.contrib.sitemaps.views import sitemap
from common.sitemaps import sitemaps
urlpatterns = [
url(r'^$', IndexView.as_view(), name='index'),
url(r'^admin/', admin.site.urls),
url(r'^news/', include('news.urls')),
url(r'^sitemap\.xml$', sitemap, {'sitemaps': sitemaps}, name='sitemap')
]
文档是here。
来源
2017-09-04 10:00:15
Ykh
不知道这是否有帮助(我刚刚了解了今天的站点地图...),但也许可以让你朝着正确的方向前进:我的快速搜索会建议0xff是UTF-16 BOM。我不完全确定你是如何创建你的站点地图的,但我会做的第一件事是尝试使用UTF-8编码保存XML,然后使用或不使用BOM。我相信[sitemap.xml标准](https://www.sitemaps.org/protocol.html)仅支持UTF-8(没有提及任何关于BOM的内容)。 –
我解决了它。网站地图XML文档需要添加以下内容: – Foobar