Карта сайта в Nuxt
Поисковым роботам удобно получить
список URL одним запросом. Такой
файл называют картой сайта
и обычно кладут по адресу
/sitemap.xml. В Nuxt его
не рисуют Vue-шаблоном: ответ
формирует обработчик в
server/routes.
Имя файла совпадает с путём.
defineEventHandler принимает
функцию с объектом event.
Перед возвратом строки выставляем
заголовок ответа через
setResponseHeader, чтобы
браузер и робот увидели XML,
а не HTML по умолчанию. Тело -
обычная строка с корневым
элементом urlset и блоками
url внутри. После
npm run dev адрес
/sitemap.xml отдаст текст
без страницы в app/pages.
В реальном проекте список loc
собирают из базы или конфига;
для учебника достаточно двух
фиксированных URL на английском домене.
Создадим server/routes/sitemap.xml.js:
export default defineEventHandler((event) => {
setResponseHeader(event, 'content-type', 'application/xml');
return `<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/</loc>
</url>
<url>
<loc>https://example.com/about</loc>
</url>
</urlset>`;
});
Сделайте карту сайта с двумя страницами сотрудников и полными URL на английском.
Добавьте в ту же карту главную страницу с адресом вашего учебного домена.