사이트맵 생성기

이 문서는 wagtail.contrib.sitemaps 모듈을 사용하여 Wagtail 웹사이트용 XML 사이트맵을 만드는 방법을 설명합니다.

참고

Wagtail 1.10부터 Django contrib sitemap 앱이 사이트맵을 생성하는 데 사용됩니다. 그러나 Wagtail은 사이트맵 생성 중에 Site 인스턴스를 사용할 수 있어야 하므로 Django에서 제공하는 뷰(django.contrib.sitemaps.views) 대신 wagtail.contrib.sitemaps.views 모듈의 뷰를 사용해야 합니다.

이러한 뷰의 사용법은 동일하며, 이는 사이트맵의 사용자 지정 및 캐싱이 기본 Django 패턴을 사용하여 수행됨을 의미합니다. 자세한 내용은 Django 문서를 참조하십시오.

기본 구성

먼저 Django 설정 파일의 INSTALLED_APPS에 "django.contrib.sitemaps" 를 추가해야 합니다.

INSTALLED_APPS = [
    ...

    "django.contrib.sitemaps",
]

그런 다음 urls.py 에 사이트맵을 생성하는 wagtail.contrib.sitemaps.views.sitemap 뷰에 대한 링크를 추가해야 합니다.

from wagtail.contrib.sitemaps.views import sitemap

urlpatterns = [
    ...

    path('sitemap.xml', sitemap),

    ...

    # 'sitemap' 줄이 기본 Wagtail 페이지 제공 경로 위에 오도록 합니다.
    path("", include(wagtail_urls)),
]

이제 /sitemap.xml 로 이동하여 사이트맵이 작동하는 것을 볼 수 있습니다. 기본적으로 웹사이트의 모든 게시된 페이지가 사이트맵에 추가됩니다.

호스트 이름 설정

기본적으로 사이트맵은 Wagtail 관리자의 Sites 영역에 정의된 호스트 이름을 사용합니다. 기본 사이트 이름이 localhost 인 경우 사이트맵의 URL은 다음과 같습니다.

<url>
    <loc>http://localhost/about/</loc>
    <lastmod>2015-09-26</lastmod>
</url>

Google Search Tools와 같은 도구가 사이트를 올바르게 색인화하려면 유효하고 크롤링 가능한 호스트 이름을 설정해야 합니다. 사이트의 호스트 이름을 localhost 에서 mysite.com 으로 변경하면 sitemap.xml 에 올바른 URL이 포함됩니다.

<url>
    <loc>http://mysite.com/about/</loc>
    <lastmod>2015-09-26</lastmod>
</url>

사이트의 포트를 443 으로 변경하면 https 스키마가 사용됩니다. 사이트 작업에 대해 자세히 알아보십시오.

사용자 지정

URL

Page 클래스는 get_sitemap_urls 메서드를 정의하며, Page 인스턴스별로 사이트맵을 사용자 지정하기 위해 재정의할 수 있습니다. 이 메서드는 요청 객체를 수락하고 사이트맵의 URL 항목당 하나의 사전 목록을 반환해야 합니다. 빈 목록을 반환하여 사이트맵에서 페이지를 제외할 수 있습니다.

각 사전에는 다음이 포함될 수 있습니다.

  • location (필수) - 사이트맵에 추가할 전체 URL 경로입니다.

  • lastmod - 페이지가 마지막으로 수정된 시점으로 설정된 Python 날짜 또는 날짜/시간입니다.

  • changefreq

  • priority

더 추가할 수 있지만 사이트맵에 표시되도록 sitemap.xml 템플릿을 재정의해야 합니다.

여러 사이트맵 제공

Django에서 사이트맵 색인을 지원하려면 django.contrib.sitemaps.views 의 색인 뷰 대신 wagtail.contrib.sitemaps.views 의 색인 뷰를 사용해야 합니다. 자세한 내용은 Django 문서를 참조하십시오.