2015-02-01 8 views
0

Gunicorn + Nginx를 사용하여 장고 프로젝트를 배포하고 있습니다. sitemap framework으로 sitemap.xml 파일을 만듭니다. 내가 결과를 example.com/sitemap.xml에 액세스 할 때 나는 그래서 127.0.0.1:8001 프록시를 사용이 유사합니다Django + Gunicorn + Nginx 웹 사이트의 Sitemap.xml 파일

<url> 
<loc> 
http://127.0.0.1:8001/pages/item_1 
</loc> 
<changefreq>monthly</changefreq> 
<priority>0.5</priority> 
</url> 

내가 Google 웹 마스터 도구에서 Google 색인에 sitemap.xml의를 추가 할 때, 위치 태그의 도메인이 127.0.0.1:8001이고 내 도메인이 아니기 때문에 Google에서 sitemap.xml을 허용하지 않습니다.

이 문제를 해결하려면 어떤 해결책이 있습니까?

도움을 주셔서 대단히 감사합니다.

답변

0

내가 질문 권리를 이해하고 있다면 구글은 당신에게 127.0.0.1:8001

127.0.0.1은 일반적으로

을 localhost에 지시에 액세스 할 경우에 에러를주고있다 이유를 묻고 생각하고 내가 꽤 있어요 확실히 구글은 액세스 할 수 없습니다 그

당신이 그 다음을 수행 일단 당신이 필요한 것은 도메인 이름, 또는 적어도 서버 IP 주소

입니다 :

urlpatterns += patterns('', 
    (r'^sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap', {'site maps': sitemaps}) 

)에 foo

/는 당신이가는 models.py 매핑 generate_sitemap 수입 사이트에서 urls.py 파일 에 generate_sitemaps.py

from foo.models import Foo 
from django.contrib import site maps 

class FooSitemap(sitemaps.Sitemap): 
    changefreq = "hourly" 
    priority = 0.5 

    def items(self): 
     return Foo.objects.all() 

    def lastmod(self, obj): 
     return obj.updated 


# make sure this is at the bottom of your generate_sitemap.py file 
sitemaps = { 
    'foo': FooSitemap, 
} 

라는 파일을 각 항목에 대해 자동으로 반환하려면 get_absolute_url 메서드가 필요합니다.

Class Foo(models.Model) 
    .... 
    updated = models.DateTimeField(auto_now=True) 

    def get_absolute_url(self): 
    return reverse('some_url', args=[self.id]) 
설정에서 6,

파일 :

INSTALLED_APPS = (
    .... 
    'django.contrib.sitemaps', 
    ) 

당신이 장고에 사이트와 도메인을 설정하는 방법에 대한 자세한 정보가 필요하면

Django sites framework

+0

감사를 체크 아웃 사용, 나는 구글이 127.0로 업로드에게 사이트 맵을 허용하지 않는 이유를 완벽하게 이해하고 있습니다. 0.1 도메인. 내 질문 :이를 대체 할 수 있나요 :이와 127.0.0.1:8000/pages/item1 ... : mydomain.com/pages/item1 ... Django Sitemap Framework의 지침을 따르고 반환 된 절대 URL이 mydomain.com이 아닌 127.0.0.1 도메인으로 시작됩니다 (프록시를 사용하고 있기 때문에). sitemap.xml 및 upl을 편집합니다. oad는 정적 파일이지만 임시 해결책 일뿐입니다.1 다음 장고 관리자로 이동합니다 (django_sites 테이블) 도메인을 입력 = SITE_ID : –

+0

나는 당신이 당신의 설정 파일에 올바른 도메인을 를 반환하는 사이트를 사용할 수 있도록 사이트의 프레임 워크를 사용하려면 맵을 필요가 있다고 생각합니다. URL을 찾기가 어려울 수도 있습니다. http://127.0.0.1:8001/admin/sites/site/1 위의 코드를 업데이트하여 'django.contrib.sitemaps'를 확인했습니다. INSTALLED_APPS에 이미 설치되어 있어야합니다. –