django如何快速生成基本的静态sitemap

修改project配置文件settings.py

在INSTALLED_APPS添加:
'django.contrib.sites',
'django.contrib.sitemaps',
做migrate会生成新的db table(django_site):
python manage.py migrate sites
在settings.py里添加:
SITE_ID = 1

修改db table(django_site)

domain/name改成你的域名,不要带http或者https。例如: www.domytool.com

在project的配置目录添加新文件sitemaps.py

from django.contrib import sitemaps
from django.urls import reverse


class StaticViewSitemap(sitemaps.Sitemap):
    priority = 0.8
    changefreq = 'daily'
    protocol = 'https'

    def items(self):
        return ['thebase:index', 'thebase:about',
                'gdp:index', 'gdp:compare', 
                'topcom:index', 'topcom:compare']

    def location(self, item):
        return reverse(item)

修改project的配置urls.py

from django.contrib.sitemaps.views import sitemap
from .sitemaps import StaticViewSitemap


sitemaps = {
    'static': StaticViewSitemap,
}

urlpatterns = [
    # ......
    path('sitemap.xml', sitemap, {'sitemaps': sitemaps},
         name='django.contrib.sitemaps.views.sitemap'),

]

浏览器直接访问

https://www.domytool.com/sitemap.xml

注意在project的配置目录下即可,不用到app下。

注意刷新服务:

sudo service apache2 restart