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

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

Два подхода для Gatsby: статический файл без дополнительной настройки в static/ или программная генерация в gatsby-node.js с использованием слоя данных GraphQL для создания ссылок на основе вашего контента.

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

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

- [ Вариант 1: статический файл в static/ ](#static)
- [ Вариант 2: генерация в gatsby-node.js ](#gatsby-node)
- [ Подход с плагином Gatsby ](#plugin)
- [ Проверить ](#verify)            
## Вариант 1: статический файл в static/

Gatsby копирует всё из `static/` каталог непосредственно в `public/` результат сборки. Поместите файл в `static/llms.txt` 
и он будет доступен по адресу `/llms.txt` после `gatsby build`.
static/llms.txt, directory structure    Копировать     

```
# Gatsby static file approach
#
# Place your file at: static/llms.txt
# Gatsby copies everything in static/ directly to the public/ build output.
#
# Project structure:
# your-gatsby-site/
# ├── static/
# │   └── llms.txt   ← add this
# ├── src/
# └── gatsby-config.js

```

Этот подход не требует изменений кода и работает со всеми вариантами развёртывания Gatsby: **Netlify**, **Vercel**, **Cloudflare Pages**, **AWS Amplify**, и размещённый на собственном
хостинге.

Пример

Статический файл имеет приоритет

Если файл существует и в обоих  static/  и должен был бы генерироваться маршрутом страницы
Gatsby по тому же пути, статический файл имеет приоритет. Используйте это в своих интересах: всегда
можно заменить сгенерированный результат ручным файлом, если он получился не совсем правильным.

## Вариант 2: генерация в gatsby-node.js

Для сайтов, страницы документации которых получают из Markdown, MDX или CMS через слой данных
Gatsby, используйте `onPostBuild` хук жизненного цикла в `gatsby-node.js` для генерации `llms.txt` после завершения сборки. Это гарантирует,
что список ссылок всегда синхронизирован с содержимым.
gatsby-node.js    Копировать     

```
// gatsby-node.js
// Generate llms.txt from your GraphQL data layer
const { writeFileSync } = require('fs');
const { resolve } = require('path');

exports.onPostBuild = async ({ graphql }) => {
// Query your documentation pages (adjust the query to your data model)
const result = await graphql(`
query {
allMarkdownRemark(
filter: { frontmatter: { collection: { eq: "docs" } } }
sort: { frontmatter: { order: ASC } }
) {
nodes {
frontmatter {
title
description
}
fields {
slug
}
}
}
}
`);

if (result.errors) {
throw result.errors;
}

const docs = result.data.allMarkdownRemark.nodes;
const siteUrl = 'https://yoursite.com';

const links = docs
.map(
(doc) =>
`- [${doc.frontmatter.title}](${siteUrl}/docs/${doc.fields.slug}/): ${doc.frontmatter.description ?? ''}`
)
.join('\n');

const content = [
'# Your Site',
'',
'> One-sentence description of your project.',
'',
'## Documentation',
'',
links,
'',
'## Optional',
'',
`- [Changelog](${siteUrl}/changelog/): Release history.`,
].join('\n');

// Write to public/ (Gatsby's build output directory)
writeFileSync(resolve(__dirname, 'public', 'llms.txt'), content, 'utf-8');
};

```

`onPostBuild` обработчик получает тот же `graphql` функция, используемая в запросах
страниц. Скорректируйте запрос под свою модель данных, в примере используется `allMarkdownRemark` но можно запросить любой исходный плагин Gatsby (`allMdx`, `allContentfulPage`, и т. д.).

## Подход с плагином Gatsby

Если вам нужно готовое решение, несколько общественных плагинов генерируют `llms.txt` автоматически. Ищите в npm по запросу `gatsby-plugin-llms-txt`. В качестве альтернативы используйте подход выше в `gatsby-node.js` достаточно прост, поэтому для большинства проектов пользовательский плагин
почти не даёт преимуществ.

Также можно использовать **gatsby-plugin-sitemap** в качестве справки он использует тот
же `onPostBuild` шаблон для записи XML-файла в `public/`.

## Проверить
Build and verify    Копировать     

```
# Build
gatsby build

# Check generated file
cat public/llms.txt | head -10

# After deploying, verify the live URL
curl -I https://yoursite.com/llms.txt
# Expected: content-type: text/plain; charset=utf-8
```

## Связанные руководства

- [Как создать llms.txt](/ru/how-to-create/), шаблоны и контрольный список. 
- [Справочник формата llms.txt](/ru/llms-txt-format/), подробности спецификации. 
- [Руководство по Eleventy](/ru/llms-txt-eleventy/), другой подход для генераторов
статических сайтов. 
- [Руководство по Next.js](/ru/llms-txt-nextjs/), React-фреймворк с SSR. 
- [Валидатор](/ru/validator/) · [Генератор](/ru/generator/).        
## Источники

- [ llmstxt.org, предложение сообщества ](https://llmstxt.org/)
- [ Документация Gatsby, папка static ](https://www.gatsbyjs.com/docs/how-to/images-and-media/static-folder/)
- [ Документация Gatsby, gatsby-node.js ](https://www.gatsbyjs.com/docs/reference/config-files/gatsby-node/)
