2013-03-14 10 views
14

Przepraszamy za mój zły angielski, ale nie jestem angielski!django sitemap http://example.com

Próbuję wygenerować plik sitemap.xml przy pomocy mojego projektu django.

W moim projekcie nie mam modeli (moja baza danych jest pusta), mam tylko statyczny URL (np. "Dom" lub "O").

Udało mi się wygenerować plik sitemap.xml, ale zamiast nazwy mojej domeny mam "http://example.com".

To moje 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> 

i moje 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) 

A moja 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) 

Mam nadzieję, że rozumiesz mój angielski i mam nadzieję, że możesz mi pomóc!

serdecznie,

sushi

Odpowiedz

28

django.contrib.sitemaps polega na django.contrib.sites.

Przejdź do sekcji administracyjnej /admin/sites/site/1/ i zmień nazwę domeny, którą tam widzisz.

+0

[Oto kilka istotnych lektur w ramce 'Sites'] (https://docs.djangoproject.com/en/dev/ref/contrib/sites/) –

+0

Świetne, dzięki. Właśnie dlatego otrzymałem 'TemplateDoesNotExist: sitemap.xml' kiedy ustawiłem bardzo podstawową mapę witryny i wypróbowałem ją na localhost: mój SITE_ID w settings.py został zakodowany na" domain.com ", dlatego nie było pracuję lokalnie dla mnie – Mark

Powiązane problemy