2010-06-24 2 views
3

sitemap.xml 생성 및 장고의 사이트 맵 프레임 워크와 관련하여 몇 가지 의문점이 있습니다.장고 사이트 맵 프레임 워크의 정적 페이지

의 내가 post_detail의 각 게시물의 콘텐츠가 포함 된 페이지 및 '태그로보기'와 같은 '도우미'페이지의 무리가있는 블로그 애플리케이션, '저자보기'등이

  1. 가 있다고 가정 해 봅시다 '도우미'페이지를 포함하여 sitemap.xml의 모든 페이지를 모두 포함 시키려면 필수입니까? 나는 많은 "도우미"페이지가 많은 키워드 및 원본이기 때문에 색인을 붙이고 싶다. 사이트 맵은 색인 페이지를 돕고, 웹 크롤러에 대한 지침을 제공하지만 크롤링을 제한하지는 않습니다. 가장 좋은 방법은 무엇입니까? 모든 것을 포함하거나 중요 페이지 만 포함 하시겠습니까?
  2. sitemap.xml에 모든 페이지를 포함해도 괜찮 으면 사이트 맵 프레임 워크에 db 페이지에 저장되지 않은 일반 텍스트를 제출하는 가장 좋은 방법은 무엇입니까? 한 가지 가능한 방법은 url 이름에 의해 역방향 URL을 반환하는 sitemap 클래스를 갖는 것입니다. 하지만 그것은 DRY가 아닌 것 같습니다. 두 번째로 url() 함수와 Sitemap 클래스에서 해당 URL 이름을 등록해야하기 때문입니다.

사이트 맵에 url-mapping을 등록하기 위해 사용자 정의 django.conf.urls.defaults.url 함수를 사용할 수 있습니다. 어떻게 생각하십니까?

감사합니다.

답변

3

사이트 맵의 사용 방법은 검색 엔진에 의해 결정됩니다. 일부는 사이트 맵에있는 것만 색인화하고 다른 색인은 시작점으로 사용하고 교차 링크를 기반으로 전체 사이트를 크롤링합니다.

생성되지 않은 페이지를 포함하는 방금 django.contrib.sitemaps.Sitemap의 하위 클래스를 만들고 한 줄에 하나의 URL로 일반 텍스트 파일을 읽게했습니다. 뭔가 같은 :

class StaticSitemap(Sitemap): 
    priority = 0.8 
    lastmod = datetime.datetime.now() 

    def __init__(self, filename): 
     self._urls = [] 
     try: 
      f = open(filename, 'rb') 
     except: 
      return 

     tmp = [] 
     for x in f: 
      x = re.sub(r"\s*#.*$", '', x) # strip comments 
      if re.match('^\s*$', x): 
       continue # ignore blank lines 
      x = string.strip(x) # clean leading/trailing whitespace 
      x = re.sub(' ', '%20', x) # convert spaces 
      if not x.startswith('/'): 
       x = '/' + x 
      tmp.append(x) 
     f.close() 
     self._urls = tmp 
    # __init__ 

    def items(self): 
     return self._urls 

    def location(self, obj): 
     return obj 

당신은 당신의 주요 사이트 맵 루틴이 같은 뭔가를 호출 할 수 있습니다

sitemap['static'] = StaticSitemap(settings.DIR_ROOT +'/sitemap.txt') 

그리고 우리의 sitemap.txt 파일은 다음과 같이 보입니다 : 나는 '

# One URL per line. 
# All paths start from root - i.e., with a leading/
# Blank lines are OK. 

/tour/ 
/podcast_archive/ 
/related_sites/ 
/survey/ 
/youtube_videos/ 

/teachers/ 
/workshops/ 
/workshop_listing_info/ 

/aboutus/ 
/history/ 
/investment/ 
/business/ 
/contact/ 
/privacy_policy/ 
/graphic_specs/ 
/help_desk/ 
+0

을 너무 오랫동안 반응하지 못해 죄송합니다. 단지 그 사실을 잊어 버렸습니다. 나는이 해결책을 정말로 좋아하지 않지만 받아 들일 만하다. 나 자신은 urlresolver를 사용했지만 꽤 지저분하다. 그래서 나는 아직도 의심 스럽다. – vshulyak

+0

걱정할 필요가 없습니다. I wasn ' –

+0

나는 그 중 하나와도 사랑에 빠졌지 만, 우리가 그것을했을 때 (2007 년 여름) 일하게하는 것이 빠른 방법처럼 보였다. –