llms.txt для Nuxt.js
Для Nuxt.js есть три подхода: статический файл в public/ (без настройки), маршрут сервера Nitro для динамической генерации или автоматическая генерация из документов Nuxt Content.
Последнее обновление:
Вариант 1: статический файл в public/
Nuxt копирует всё из public/ каталог непосредственно в результат сборки, откуда он будет
доступен в корне сайта. Разместите файл по адресу public/llms.txt и он будет доступен по адресу /llms.txt для каждой цели развёртывания.
# Nuxt static file approach
#
# Place your file at: public/llms.txt
# Nuxt copies everything in public/ directly to the build output.
#
# Project structure:
# your-nuxt-app/
# ├── public/
# │ └── llms.txt ← add this
# ├── pages/
# └── nuxt.config.ts
#
# No configuration needed. Works with all deployment presets.
Этот подход не требует настройки и одинаково работает во всех пресетах Nitro: node-server, cloudflare-pages, vercel, netlify, и статический.
Вариант 2: серверный API-маршрут
Создайте файл по адресу server/routes/llms.txt.ts. Движок Nitro в Nuxt сопоставляет
файлы в server/routes/ напрямую к путям URL, поэтому этот файл отдаётся ровно по адресу
/llms.txt без дополнительной настройки маршрутизации.
// server/routes/llms.txt.ts
// Nuxt server route, served at /llms.txt
export default defineEventHandler(() => {
const content = `# Your Site
> One-sentence description of what your site or product does.
## Documentation
- [Getting Started](https://yoursite.com/docs/start): Install and configure in minutes.
- [API Reference](https://yoursite.com/docs/api): Full endpoint catalog with examples.
## Product
- [Overview](https://yoursite.com/product): Core features and capabilities.
- [Pricing](https://yoursite.com/pricing): Plans and billing details.
## Optional
- [Changelog](https://yoursite.com/changelog): Release history.
- [GitHub](https://github.com/your-org/your-repo): Source code.
`;
setResponseHeader(event, 'Content-Type', 'text/plain; charset=utf-8');
setResponseHeader(event, 'Cache-Control', 'public, max-age=3600, stale-while-revalidate=86400');
return content;
});
Используйте setResponseHeader из h3 библиотеку (встроенную в Nuxt), чтобы
задать правильный Content-Type. Добавьте a Cache-Control заголовок, чтобы узлы CDN кэшировали ответ и снижали нагрузку на источник.
Вариант 3: автоматическая генерация Nuxt Content
Если вы используете Nuxt Content для документации можно запросить
коллекцию контента и автоматически построить список ссылок. Это гарантирует, что llms.txt остаётся синхронизированным с документацией без ручных обновлений.
// server/routes/llms.txt.ts
// Auto-generate llms.txt from Nuxt Content documents
import { serverQueryContent } from '#content/server';
export default defineEventHandler(async (event) => {
// Query all docs; adjust collection name as needed
const docs = await serverQueryContent(event, '/docs')
.only(['title', 'description', '_path'])
.find();
const links = docs
.map((doc) => `- [${doc.title}](https://yoursite.com${doc._path}/): ${doc.description ?? ''}`)
.join('\n');
const body = [
'# Your Site',
'',
'> One-sentence description of your project.',
'',
'## Documentation',
'',
links,
].join('\n');
setResponseHeader(event, 'Content-Type', 'text/plain; charset=utf-8');
return body;
});
Скорректируйте путь запроса (/docs) и имена полей в соответствии со структурой
вашего контента. Запустите команду валидатор после деплоев, чтобы выявлять
регрессии форматирования.
Nitro и цели развёртывания
- node-server, серверные маршруты выполняются как HTTP-обработчик Node.js.
Добавьте правило кеширования обратного прокси (nginx/Caddy) для
/llms.txtчтобы не обращаться к Node при каждом запросе. - cloudflare-pages, статические файлы в
public/публикуются через глобальную CDN Cloudflare. Серверные маршруты становятся Pages Functions. См. Руководство по Cloudflare для заголовков кеширования. - vercel, статические файлы автоматически кешируются на Edge. Серверные маршруты становятся бессерверными или Edge Functions Vercel в зависимости от конфигурации.
- статический (полностью предварительно отрендеренный), используйте
public/подход со статическим файлом; серверные маршруты недоступны при полностью статическом выводе.
Проверить
После развёртывания убедитесь, что файл обслуживается корректно:
curl -I https://yoursite.com/llms.txt
# Expected:
# HTTP/2 200
# content-type: text/plain; charset=utf-8
curl https://yoursite.com/llms.txt | head -5
# Should print the first lines of your file Связанные руководства
- Как создать llms.txt, шаблоны и контрольный список.
- Справочник формата llms.txt, подробности спецификации.
- Руководство Vercel, деплоем и заголовками кеша.
- Руководство по Cloudflare Pages, конфигурация CDN.
- Валидатор · Генератор.