사이트맵은 사용자나 소프트웨어를 통해 접근이 가능하다. 수많은 사이트들은 체계적인 뷰, 일반적으로 사이트의 계층적인 뷰를 표출하기 위해 사용자가 볼 수 있는 사이트맵을 보유하고 있다. 방문자가 특정 문서를 찾는데 도움을 주고 웹 크롤러에 의해 사용될 수도 있다.
검색 엔진과 기타 크롤러가 사용하는 경우 사이트 내 문서를 나열하는 XML 사이트맵이라는 구조화된 포맷이 있어서 상대적 중됴오와 업데이트 주기를 알 수 있다. 이는 robots.txt 파일로부터 지시되며 보통 sitemap.xml이라는 이름을 가진다.
한 번에 사이트 개요 내용을 볼 수 있도록 둘러보기 도움을 제공하는 역할을 하기도 한다.
https://ko.wikipedia.org/wiki/%EC%82%AC%EC%9D%B4%ED%8A%B8%EB%A7%B5
1. Settings/base.py
INSTALLED_APPS = [
...
'wagtail.contrib.sitemaps',
...
'django.contrib.sitemaps'
]
2. myproject/urls.py
...
from wagtail.contrib.sitemaps.views import sitemap
...
urlpatterns = [
...
path('sitemap.xml', sitemap),
]
http://127.0.0.1:8000/sitemaps.xml
3. models.py
class BlogListingPage(RoutablePageMixin, Page):
template = "blog/blog_listing_page.html"
custom_title = models.CharField(
max_length=100,
blank=False,
null=False,
help_text="Overwrites the default title",
)
content_panels = Page.content_panels + [
FieldPanel("custom_title"),
]
def get_context(self, request, *args, **kwargs):
context = super().get_context(request, *args, **kwargs)
context['posts'] = BlogDetailPage.objects.live().public()
return context
@route(r'^latest/$')
def latest_blog_posts(self, request, *args, **kwargs):
context = self.get_context(request, *args, **kwargs)
context["posts"] = context["posts"][:1]
return render(request, "blog/latest_posts.html", context)
def get_sitemap_urls(self, request):
# 사이트 맵을 사용하고 싶지 않을때는 return [] 을 해주면 된다.
sitemap = super().get_sitemap_urls(request)
sitemap.append(
{
"location": self.full_url + self.reverse_subpage("latest_blog_posts"),
"lastmod": (self.last_published_at or self.latest_revision_created_at),
"priority": 0.9,
}
)
return sitemap
get_sitemap_urls 함수를 확인하면 된다. 일반적으로 Publish된 Page 모델들은 Sitemap이 잘 나타나지만 latest_blog_posts처럼 templates으로 render할 경우 Sitemap에 표시되지 않는다. 그럴경우 get_sitemap_urls로 직접 정의 해주면 된다.
'Back-End > Wagtail, Django' 카테고리의 다른 글
Wagtail, Django Paginator (0) | 2021.11.21 |
---|---|
Wagtail StructValue (0) | 2021.11.18 |
Wagtail 참고 사이트 (0) | 2021.11.17 |
Wagtail git ignore setting (0) | 2021.11.16 |
Wagtail Routable Pages (0) | 2021.11.16 |