【NPM】Astroでのサイトマップを生成方法
準備
npm
npm install @astrojs/sitemap
pnpm
pnpm add @astrojs/sitemap
yarn
yarn add @astrojs/sitemap
どれかをターミナルからインストールする
そうすると、 node_modulesフォルダ内に
設定変更
astro.config.mjs
import { defineConfig } from 'astro/config';
src/layouts/Layout.astro
<head>
<link rel="sitemap" href="/sitemap-index.xml" />
</head>
動的にrobots.txtを生成する
src/pages/robots.txt.ts
import type { APIRoute } from 'astro';
const robotsTxt = `
User-agent: *
Allow: /
Sitemap: ${new URL('sitemap-index.xml', import.meta.env.SITE).href}
`.trim();
export const GET: APIRoute = () => {
return new Response(robotsTxt, {
headers: {
'Content-Type': 'text/plain; charset=utf-8',
},
});
};
PhpStormを使うと、もしかしたら
() => {
return new Response(robotsTxt, {
headers: {
'Content-Type': 'text/plain; charset=utf-8',
},
});
}
この部分が、
イニシャライザーの型 () => Response は変数の型 APIRoute に代入できません
みたいなエラーが出るかもしれませんが、無視で大丈夫なはずです!