generateSitemaps
generateSitemaps
함수를 사용하여 애플리케이션에 대한 여러 사이트맵을 생성할 수 있습니다.
반환값
generateSitemaps
는 id
속성이 있는 객체 배열을 반환합니다.
URL
프로덕션 환경에서는 생성된 사이트맵이 /.../sitemap/[id].xml
에서 제공됩니다. 예를 들어, /product/sitemap/1.xml
과 같은 형식입니다.
개발 환경에서는 /.../sitemap.xml/[id]
에서 생성된 사이트맵을 볼 수 있습니다. 예를 들어, /product/sitemap.xml/1
와 같은 형식입니다. 이 차이는 일시적이며 프로덕션 형식을 따릅니다.
예제
예를 들어, generateSitemaps
를 사용하여 사이트맵을 분할하려면 사이트맵 id
가 포함된 객체 배열을 반환합니다. 그런 다음, id
를 사용하여 고유한 사이트맵을 생성합니다.
app/product/sitemap.ts
import { BASE_URL } from '@/app/lib/constants'
export async function generateSitemaps() {
// 총 제품 수를 가져와 필요한 사이트맵 수를 계산합니다.
return [{ id: 0 }, { id: 1 }, { id: 2 }, { id: 3 }]
}
export default async function sitemap({
id,
}: {
id: number
}): Promise<MetadataRoute.Sitemap> {
// Google's limit is 50,000 URLs per sitemap
const start = id * 50000
const end = start + 50000
const products = await getProducts(
`SELECT id, date FROM products WHERE id BETWEEN ${start} AND ${end}`,
)
return products.map((product) => ({
url: `${BASE_URL}/product/${product.id}`,
lastModified: product.date,
}))
}
app/product/sitemap.js
import { BASE_URL } from '@/app/lib/constants'
export async function generateSitemaps() {
// 총 제품 수를 가져와 필요한 사이트맵 수를 계산합니다.
return [{ id: 0 }, { id: 1 }, { id: 2 }, { id: 3 }]
}
export default async function sitemap({ id }) {
// Google's limit is 50,000 URLs per sitemap
const start = id * 50000
const end = start + 50000
const products = await getProducts(
`SELECT id, date FROM products WHERE id BETWEEN ${start} AND ${end}`,
)
return products.map((product) => ({
url: `${BASE_URL}/product/${id}`,
lastModified: product.date,
}))
}