【Next.js 13】next-sitemapで自動更新サイトマップを作成する。
2023/7/3
2023/7/3
Next.js 13.3で動的サイトマップの作成が簡単になりました。
ただ、新しいページを生成した場合などに毎回ビルド処理を行わないとサイトマップが更新されない事態が起きてしまったので、今回はその対処法メモです。
結論としては「next-sitemap」を使用して、サーバーサイドレンダリングするサイトマップを作成します。
「next-sitemap」をインストールする
$ npm i next-sitemap
「next-sitemap.config.js」を作成&編集する
next-sitemap.config.js
を作成します。
// next-sitemap.config.js
/** @type {import('next-sitemap').IConfig} */
module.exports = {
siteUrl: `https://${process.env.NEXT_PUBLIC_DOMAIN_URL}`,
exclude: ['/server-sitemap.xml'],
}
route.tsを作成する
server-sitemap.xml/route.ts
を作成します。
import { getServerSideSitemap } from "next-sitemap";
import { getPosts } from "@/lib/posts";
// サイトマップに追加するページ指定
export async function GET(request: Request) {
const baseUrl = `https://${process.env.NEXT_PUBLIC_DOMAIN_URL}`;
// トップページ
const static_pages = [
{
loc: `${baseUrl}/`,
lastmod: new Date().toISOString(),
},
];
// 投稿ページ
const posts = await getPosts();
const post_sitemaps = posts?.map((post) => {
return {
loc: `${baseUrl}/${post.id}`,
lastmod: new Date(post.updated_at).toISOString(),
};
});
return getServerSideSitemap([
...static_pages, // トップページ
...post_sitemaps||[] // 投稿ページ
]);
}
まとめ
サーバーサイドレンダリングでサイトマップを作成することができます。
これでページを生成するごとにビルド処理を行わないでいい!
最近の記事
音楽生成AI「Suno」の使い方まとめ!作詞作曲が簡単にできる?
簡単に曲が作れるAIということでよく聞く「Suno(Chirp)」についてまとめました。
目次「Suno」とはテキストからさまざまな音声を生成する「Bark」歌詞から曲を生成する「Chirp」...
2023/11/24
2023/11/24
【Open AI】APIの料金まとめ|GPT・DALL·E・Whisperなど
Open AIのAPI(一部)の料金をまとめました。
参考のために日本円は「1ドル150円」で換算をしています。
目次Text generation: テキスト生成Assistants ...
2023/11/22
2023/11/22
【Next.js】Assistants APIの基本的なコードまとめ。
Open AIの「Assistants API」をNext.jsで使用する時の基本的なコードをまとめました。
目次Open AIのAPIセットアップ基本の使い方Threads: スレッドを作る...
2023/11/21
2023/11/21
【Next.js】Open AIのAPIでファイルをアップロードする方法。
今回は、Next.jsサイトからOpen AIのAPI(Upload file)で、ファイルをアップロードする方法を実装するのに時間がかかったのでその過程と最終コードをまとめます。(Vercelにデ...
2023/11/21
2023/11/22
「生成系AIのWEBプロダクトTOP50」をまとめてみる。
Andreessen Horowitzが出している記事で紹介されている「AIプロダクトの月間訪問者数ランキングTOP50」のサービスをまとめました。
目次ChatGPTcharacter.ai...
2023/10/3
2023/10/3
【Next.js 13】NextAuth+FireStoreにユーザー情報を保存する。
今回は、以下の3つをNext.js 13で実装するためのメモです。
Googleアカウントでログインできる
アカウント、セッション情報をFirestoreに保存する
サーバーサイ...
2023/7/12
2023/7/12