generateSitemaps

generateSitemaps 함수를 사용하여 애플리케이션에 대한 여러 사이트맵을 생성할 수 있습니다.

반환값

generateSitemapsid 속성이 있는 객체 배열을 반환합니다.

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,
  }))
}