对于Django中的静态URL,sitemap.xml为空

时间:2017-08-16 17:03:28

标签: django sitemap

我有一个Django项目,我正在尝试为我的静态网址创建一个站点地图(没有模型)。但是,在运行python manage.py runserver并转到http://127.0.0.1:8000/sitemap.xml时,我会将其清空:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"></urlset>

我的代码如下所示:

#urls.py
from main_app.sitemaps import StaticSitemap

sitemaps = {
    'static': StaticSitemap(),
}

urlpatterns = [
    ...
    url(r'^sitemap\.xml$', sitemap, {'sitemaps': sitemaps}),
    ...
]
urlpatterns += i18n_patterns(
...
)

#sitemaps.py
from django.contrib.sitemaps import Sitemap
from django.urls import reverse

class StaticSitemap(Sitemap):
     priority = 0.5
     changefreq = 'weekly'
     i18n = True

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

documentation显示Models的示例,并修改了函数items;但由于我没有,我不确定我是否遗漏了那些东西。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我刚刚发现了问题所在。

似乎你需要定义函数items

def items(self):
    list_of_url_names = ['home', 'about', ..., 'contact']
    return list_of_url_names

然后sitemap.xml不再为空。