🧭
Nuxt3のSSGでNuxt Contentを使用する
Nuxt3でNuxt Contentを使用した際にnpm run dev
では問題なく表示されるがnpm run generate
で静的サイトとして生成するとNuxt Contentのルートだけ生成されていませんでした。
原因
原因は以下の記事と同じで、他のページが動的ページをリンクしていなかったことが原因でした。
対応策1
v2では以下の方法でNuxt Contentのルートを追加できます。
import fs from "fs";
export default function getContentRoutes() {
const fileNames = fs
.readdirSync("./content")
.map((f) => "/notes/" + f.replace(".md", ""));
return fileNames;
}
nuxt.config.ts
...
nitro: {
prerender: {
routes: getContentRoutes(),
},
}
...
...できればNuxt Contentが提供している関数を使ってルート設定をしたいです。
対応策2
このDiscussionsにある、マウント前に動的ページのNavigationLinkを全て生成し、マウント後にリンクを削除する方法でできるようです。
まだ試せてないので上手くできたら追記します。
サイトマップ生成について
Nuxt Contentのドキュメントにはサイトマップの生成方法がありますが、Nuxt Content以外のルートがある場合、kakkokari_gtyihさんの方法のほうが扱いやすいと思いました。
Discussion