Strapi

Структура папок и файлов Strapi

Структура папок и файлов Strapi

Дерево проекта

apps/strapi/
├── config/
│   ├── admin.js         # JWT, API token, transfer token
│   ├── api.js           # REST API (defaultLimit: 25, maxLimit: 100)
│   ├── database.js      # MySQL, Postgres, SQLite
│   ├── middlewares.js   # Security, CORS, S3/imgproxy CSP
│   ├── page.js          # Populate блоков для page, project, new и т.д.
│   ├── plugins.js       # Ticket plugin, AWS S3 upload
│   └── server.js        # Host, port, app keys
│
├── src/
│   ├── admin/           # Кастомизация админки
│   ├── api/             # 24 content-type
│   │   ├── page/
│   │   ├── project/
│   │   ├── new/
│   │   ├── promotion/
│   │   ├── header/
│   │   ├── footer/
│   │   └── ...
│   ├── components/      # 62 компонента
│   │   ├── blocks/      # Блоки для Dynamic Zone
│   │   ├── shared/      # Общие (seo, button, link, card)
│   │   ├── content/     # rich-text, editor, images, video, author
│   │   ├── project/     # galereya, hod-stroitelstva, kamery, method
│   │   ├── apartment/   # custom-block
│   │   ├── map/         # map-pin
│   │   └── promo/       # card
│   ├── extensions/
│   └── plugins/
│       └── ticket/      # Плагин заявок
│
├── scripts/
│   ├── download-strapi-db.sh
│   └── generate-docs.js
│
├── types/generated/     # TypeScript типы
│   ├── components.d.ts
│   └── contentTypes.d.ts
│
├── package.json
└── nixpacks.toml

Ключевые файлы

ФайлНазначение
config/page.jsКонфигурация populate для блоков. Используется при запросах page, project, new, promotion, secondary-house, apartment-page
src/api/*/content-types/*/schema.jsonСхемы content-types
src/components/**/*.jsonСхемы компонентов
types/generated/*.d.tsСгенерированные TypeScript типы

Связь с фронтендом

  • Populate задаётся в config/page.js
  • Рендеринг блоков — в apps/web/layers/page/app/components/Blocks/Renderer/Renderer.vue
  • При добавлении блока нужно обновить: schema content-type, page.js, Renderer.vue
Copyright © 2026