静态 Sitemap.xml Django

3 投票
2 回答
5459 浏览
提问于 2025-04-18 00:05

我刚接触Django,想添加一个基本的sitemap.xml文件。我只有静态页面。请问我该如何添加一个简单的sitemap.xml,以便我可以通过http://mydomain.com/sitemap.xml访问它呢?

urls.py
pages 
  --- templates
        ---- pages
                -- about.html
                -- contact.html
                -- etc...
  --- views.py

在我的urls.py文件中:

from django.conf.urls import patterns, include, url
from django.views.generic.base import TemplateView
from [myfolder].pages.views
from django.contrib import admin
from django.views.generic import RedirectView

urlpatterns = patterns('',
    url(r'^$',        TemplateView.as_view(template_name='pages/home.html'), name='home'),
    url(r'^about/$',     TemplateView.as_view(template_name='about.html')),
    url(r'^sitemap\.xml/$',     TemplateView.as_view(template_name='sitemap.xml')),????
)

我该如何根据我在templates/pages文件夹中的页面生成一个sitemap呢?

2 个回答

1

看看Django-static-sitemap这个工具吧。它实际上是用来生成XML文件的。你可以在这里找到它:https://github.com/xaralis/django-static-sitemaps

6

之前的回答还有一种替代方案,就是在你的 urls.py 文件中添加一个类似于 robots.txt 的文件。

from django.views.generic import TemplateView

urlpatterns = patterns('', 
    url(r'^sitemap\.xml$', TemplateView.as_view(template_name='sitemap.xml', content_type='text/xml')),
)

唯一的不同是要把 content_type 的值改成 text/xml,而对于 robots.txt 文件来说,它的值是 text/plain

撰写回答