<!-- Generated from ru/llms-txt-nextjs/index.html. The canonical document is the HTML page. -->

- [ Главная ](/ru/) 
/
- [ Как создать llms.txt ](/ru/how-to-create/) 
/
- Next.js            
# `llms.txt` в Next.js

Добавьте файл llms.txt в проект Next.js за несколько минут: как статический ресурс или динамический Route Handler.

Последнее обновление: 22 апреля 2026 г.

На этой странице

- [ Два подхода ](#overview)
- [ Метод 1: статический файл в /public/ ](#static)
- [ Метод 2: обработчик маршрута App Router ](#route-handler)
- [ Альтернатива Pages Router ](#pages-router)
- [ Добавление llms-full.txt ](#llms-full)
- [ Проверка настройки ](#verify)            
## Два подхода

Next.js предоставляет два простых способа обслуживать `llms.txt` в `/llms.txt`:

- **Статический файл в `/public/`**, самый простой подход. Запишите файл
вручную или сгенерируйте его во время сборки. Работает и с App Router, и с Pages Router.
Нулевая нагрузка во время выполнения. 
- **Обработчик маршрута App Router**, файл TypeScript в
`app/llms.txt/route.ts` который динамически создает содержимое из ваших источников данных
(файлов MDX, CMS, базы данных). Лучше всего подходит, если содержимое часто меняется.   
Для большинства сайтов статический файл в `/public/` — правильный выбор. Используйте Route
Handler только если хотите автоматически создавать содержимое из данных сайта во время сборки или
обработки запроса.

## Метод 1: статический файл в /public/

Next.js обслуживает каждый файл в `/public/` каталог в корне вашего домена. Файл по адресу
`/public/llms.txt` доступен по адресу `https://yourdomain.com/llms.txt`
без дополнительной настройки.

- Создайте файл: `touch public/llms.txt` 
- Запишите ваш `llms.txt` содержимое (см. [руководство](/ru/how-to-create/) и
[генератор](/ru/generator/) для правильного формата):   
```
# Your Site Name

> One-sentence description of your site for LLM context.

## Core pages

- [Page title](https://yourdomain.com/page/): brief description.
- [Another page](https://yourdomain.com/other/): brief description.

## Optional

- [About](https://yourdomain.com/about/): who maintains this site.

```

- Зафиксируйте файл и разверните его. Готово.     
Пример

Заголовок Content-Type

Next.js будет отдавать  /public/llms.txt  с помощью  Content-Type: text/plain 
автоматически (на основе  .txt  расширение). Дополнительная настройка заголовков не требуется.

## Способ 2: обработчик маршрута App Router

Если вы хотите генерировать `llms.txt` программно, например считывая все файлы MDX в каталоге
содержимого, используйте Route Handler.

Создайте файл `app/llms.txt/route.ts`:

```
import { NextResponse } from 'next/server';

export const dynamic = 'force-static'; // generate at build time

export async function GET() {
// Build your content. Here: hardcoded; in practice: read from MDX, CMS, etc.
const content = `# Your Site Name

> Description of your site.

## Core pages

- [Getting started](https://yourdomain.com/docs/getting-started/): installation and first steps.
- [API reference](https://yourdomain.com/docs/api/): full endpoint reference.
`;

return new NextResponse(content, {
headers: {
'Content-Type': 'text/plain; charset=utf-8',
// Optional: cache for 1 hour in production
'Cache-Control': 'public, max-age=3600, stale-while-revalidate=86400',
},
});
}

```

Настройка `dynamic = 'force-static'` указывает Next.js отображать этот маршрут во время
сборки, а не при каждом запросе. Уберите эту строку, если вам действительно нужно динамическое содержимое
(получаемое из актуальной базы данных во время запроса).

Примечание

Автоматическая генерация из файлов MDX

Чтобы автоматически создать список страниц из каталога содержимого MDX, замените жёстко заданную
строку логикой, которая читает источники содержимого:
const files = fs.readdirSync('content/docs')  → извлеките заголовки и slug → создайте
список Markdown. Это сохраняет  llms.txt  автоматически синхронизированным с вашими актуальными
страницами.

## Альтернатива Pages Router

Если вы используете Pages Router в Next.js (до App Router), самый простой путь по-прежнему —
статический файл в `/public/`. Соглашение о файлах Route Handler существует только в
App Router.

Для динамической генерации с Pages Router можно использовать пользовательский сервер (Express
или Fastify) либо `getServerSideProps`-страница с пользовательским типом содержимого,
но это значительно усложняет решение по сравнению со статическим файлом. Используйте `/public/llms.txt`
для проектов Pages Router.

## Добавление llms-full.txt

[`llms-full.txt`](/ru/llms-full-txt/) встраивает полный контент ключевых страниц
в единый файл. В Next.js App Router:

```
// app/llms-full.txt/route.ts
import { NextResponse } from 'next/server';
import fs from 'fs';
import path from 'path';

export const dynamic = 'force-static';

export async function GET() {
// Example: read MDX files from content/docs and concatenate them
const docsDir = path.join(process.cwd(), 'content/docs');
const files = fs.readdirSync(docsDir).filter(f => f.endsWith('.mdx'));

const sections = files.map(file => {
const content = fs.readFileSync(path.join(docsDir, file), 'utf8');
const slug = file.replace('.mdx', '');
return `## https://yourdomain.com/docs/${slug}/\n\n${content}`;
});

const body = `# yourdomain.com, full content\n\n${sections.join('\n\n---\n\n')}`;

return new NextResponse(body, {
headers: { 'Content-Type': 'text/plain; charset=utf-8' },
});
}

```

## Проверка настройки

После публикации убедитесь, что файл доступен и корректно сформирован:

- Посетить `https://yourdomain.com/llms.txt` в браузере вы должны увидеть обычный текст. 
- Проверьте HTTP-заголовки: `curl -I https://yourdomain.com/llms.txt` должен показывать
`Content-Type: text/plain` и код состояния 200. 
- Вставьте URL в [Валидатор llmtxt.info](/ru/validator/) для проверки соответствия спецификации. 
- Проверьте, что `llms.txt` не заблокирован в вашем `public/robots.txt`.   
## Продолжить чтение

- [Как создать llms.txt](/ru/how-to-create/), общее руководство с шаблонами для всех
фреймворков. 
- [Что такое llms-full.txt?](/ru/llms-full-txt/), сопутствующий файл с полным
корпусом. 
- [Валидатор](/ru/validator/), проверьте файл на соответствие спецификации. 
- [Лучшие практики](/ru/best-practices/), что включать и чего избегать.        
## Источники

- [ Документация Next.js, статические ресурсы в docs/public/ ](https://nextjs.org/docs/app/api-reference/file-conventions/public-folder)
- [ Документация Next.js, обработчики маршрутов ](https://nextjs.org/docs/app/api-reference/file-conventions/route)
- [ llmstxt.org, справочник спецификации ](https://llmstxt.org/)
