2013-03-14 5 views
14

Entschuldigung für mein schlechtes Englisch, aber ich bin kein Englisch!django sitemap http://example.com

Ich versuche, eine sitemap.xml mit meinem Django-Projekt zu generieren.

In meinem Projekt habe ich keine Modelle (meine Datenbank ist leer), ich habe nur statische URL (wie 'zu Hause' oder 'Über').

Ich schaffte es, eine sitemap.xml zu generieren, aber ich habe "http://example.com" statt dass mein Domain-Name.

Das ist meine sitemap.xml:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> 
<url> 
<loc> 
http://example.com/accueil 
</loc> 
<lastmod> 
2013-03-14 
</lastmod> 
<changefreq> 
weekly 
</changefreq> 
</url> 
<url> 
<loc> 
http://example.com/cv 
</loc> 
<lastmod> 
2013-03-14 
</lastmod> 
<changefreq> 
weekly 
</changefreq> 
</url> 
<url> 
<loc> 
http://example.com/portfolio 
</loc> 
<lastmod> 
2013-03-14 
</lastmod> 
<changefreq> 
weekly 
</changefreq> 
</url> 
<url> 
<loc> 
http://example.com/a_propos 
</loc> 
<lastmod> 
2013-03-14 
</lastmod> 
<changefreq> 
weekly 
</changefreq> 
</url> 
</urlset> 

und meine urls.py:

from django.conf.urls import patterns, include, url 
from django.conf import settings 
from django.contrib.staticfiles.urls import staticfiles_urlpatterns 
from django.conf.urls.static import static 

from sitemaps import BasicSitemap 
# Uncomment the next two lines to enable the admin: 
# from django.contrib import admin 
# admin.autodiscover() 

sitemaps= { 
    'pages' : BasicSitemap(['accueil','cv','portfolio','apropos']) 
} 

urlpatterns = patterns('', 
    # Examples: 
    # url(r'^$', 'portfolio.views.home', name='home'), 
    # url(r'^portfolio/', include('portfolio.foo.urls')), 

    # Uncomment the admin/doc line below to enable admin documentation: 
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), 

    # Uncomment the next line to enable the admin: 
    # url(r'^admin/', include(admin.site.urls)), 
    url(r'^', include('portail_portfolio.urls')), 
    url(r'^sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}) 

)

urlpatterns += staticfiles_urlpatterns() + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

Und mein sitemaps.py:

from django.contrib.sitemaps import Sitemap 
from django.core.urlresolvers import reverse 
#from portail_portfolio.models import Entry 

from datetime import datetime 

class BasicSitemap(Sitemap): 

    def __init__(self, names): 
     self.names = names 

    def items(self): 
     return self.names 

    def changefreq(self, obj): 
     return 'weekly' 

    def lastmod(self, obj): 
     return datetime.now() 

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

Ich hoffe, Sie können mein Englisch verstehen und ich hoffe, Sie können mir helfen!

Herzlichst

Sushi

Antwort

28

django.contrib.sitemaps auf django.contrib.sites beruht.

Gehen Sie in Ihren Admin-Bereich /admin/sites/site/1/ und ändern Sie den dort angezeigten Domainnamen.

+0

[Hier finden Sie einige relevante Informationen zum 'Sites' Framework] (https://docs.djangoproject.com/en/dev/ref/contrib/sites/) –

+0

Brilliant, thanks. Das ist genau der Grund, warum ich "TemplateDoesNotExist: sitemap.xml" bekommen habe, als ich eine sehr einfache Sitemap eingerichtet habe und sie auf localhost ausprobiert habe: meine SITE_ID in settings.py wurde auf "domain.com" fest codiert, deshalb war es das auch nicht vor Ort für mich arbeiten – Mark