(sitemap_generation)=
# 사이트맵 생성기
이 문서는 `wagtail.contrib.sitemaps` 모듈을 사용하여 Wagtail 웹사이트용 XML 사이트맵을 만드는 방법을 설명합니다.
```{note}
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"` 를 추가해야 합니다.
```python
INSTALLED_APPS = [
...
"django.contrib.sitemaps",
]
```
그런 다음 `urls.py` 에 사이트맵을 생성하는
`wagtail.contrib.sitemaps.views.sitemap` 뷰에 대한 링크를 추가해야 합니다.
```python
from wagtail.contrib.sitemaps.views import sitemap
urlpatterns = [
...
path('sitemap.xml', sitemap),
...
# 'sitemap' 줄이 기본 Wagtail 페이지 제공 경로 위에 오도록 합니다.
path("", include(wagtail_urls)),
]
```
이제 `/sitemap.xml` 로 이동하여 사이트맵이 작동하는 것을 볼 수 있습니다.
기본적으로 웹사이트의 모든 게시된 페이지가 사이트맵에 추가됩니다.
## 호스트 이름 설정
기본적으로 사이트맵은 Wagtail 관리자의
`Sites` 영역에 정의된 호스트 이름을 사용합니다. 기본 사이트 이름이 `localhost` 인 경우
사이트맵의 URL은 다음과 같습니다.
```xml
http://localhost/about/
2015-09-26
```
Google Search Tools와 같은 도구가 사이트를 올바르게 색인화하려면
유효하고 크롤링 가능한 호스트 이름을 설정해야 합니다. 사이트의 호스트 이름을
`localhost` 에서 `mysite.com` 으로 변경하면 `sitemap.xml` 에 올바른 URL이 포함됩니다.
```xml
http://mysite.com/about/
2015-09-26
```
사이트의 포트를 `443` 으로 변경하면 `https` 스키마가 사용됩니다.
[사이트 작업](site_model_ref)에 대해 자세히 알아보십시오.
## 사용자 지정
### 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
문서를 참조하십시오.