next.js 13生成站点地图sitemap.xml

2023年10月05日

注:此方法适用于next.js 13.3以后的版本

参考代码:app/sitemap.js

import api from "./axios/api";
 
const URL = "https://www.jason-z.com";

async function getPosts() {
    // 使用 fetch 或其他方法从 API 获取文章数据
    try {
      const res = await api.get("/posts?sort[0]=createdAt:desc");
      console.log(res);
      if (res.status == 200) {
        return res.data.data;
      }
    } catch (e) {}
  
    return [];
  }
 
export default async function sitemap() {
    const postsData = await getPosts();

    console.log(postsData);

    const posts = postsData.map(({ id, attributes}) => ({
        url: `${URL}/posts/${attributes?.slug}`,
        lastModified: attributes?.updatedAt,
    }));
    
 
    const routes = ["","/blog"].map((route) => ({
        url: `${URL}${route}`,
        lastModified: new Date().toISOString(),
    }));
    
    return [...routes, ...posts];
}

© 1987 - 2023 张晓刚 版权所有

浙ICP备16002143号-1