Nuxt.js + Apollo GraphQL Sitemap.xml 만들기
2020. 4. 18. 19:44ㆍWeb
728x90
Nuxt.js와 Apollo GraphQL Client를 사용하는 Front End Server에서 사이트맵(Sitemap)을 만드는 방법을 소개하고자 합니다.
위 라이브러리를 이용하면 굉장히 쉽게 사용할 수 있습니다.
방식은 지난 https://gmyankee.tistory.com/291
Generate 생성 방식과 90% 이상이 유사합니다.
// package.json
{
// ... 중략
"dependencis": {
// ... 중략
"@nuxtjs/sitemap": "^2.2.0"
// ... 생략
}
//... 생략
}
package.json 파일에서 @nuxtjs/sitemap을 추가하거나 수동으로 설치를 진행합니다.
// nuxt.config.js
const { createApolloFetch } = require('apollo-fetch')
export default {
// ... 중략
modules: [
'@nuxtjs/sitemap',
],
sitemap: {
hostname: 'https://example.com', // 사이트 주소
gzip: true,
routes: function() {
const uri = process.env.GRAPHCMS_URL
const apolloFetch = createApolloFetch({ uri })
const query = `
query{
... 여기 쿼리채우는 거 아시죠?
}
`
return apolloFetch({ query })
.then(result => {
const { data } = result
return data.codes.edges.map(workshop => `/workshop/${workshop.node.id}`)
})
.catch(error => {
console.log(`dynamic routes error: ${error}`)
})
}
}
}
요렇게 하시고 사이트 주소에서
https://example.com/sitemap.xml 을 접속해보시면 사이트맵이 출력되는 것을 볼 수 있습니다.
728x90
'Web' 카테고리의 다른 글
Modern Web의 4가지 렌더링 방식에 대한 고찰 (0) | 2021.06.07 |
---|---|
GraphQL의 토큰 만료 응답 관리 (0) | 2021.05.14 |
Nuxt + Apollo Graphql => Generate로 SSG/SEO 적용하기 (0) | 2020.04.01 |
Firebase로 Serverless Push 알림 발송 구현하기 (0) | 2020.03.30 |
Nuxt + PWA + Firebase Cloud messaging 이젠 눈감고도 설치하죠? (0) | 2020.03.28 |