Next.js
شروع کردن
ساختار پروژه (Structure)

ساختار پروژه Next.js

این صفحه نمای کلی از ساختار پروژه یک برنامه Next.js را ارائه می‌کند. این بخش شامل فایل‌ها و پوشه‌های سطح بالا، فایل‌های پیکربندی و قراردادهای مسیریابی در پوشه‌های app و pages می‌شود.

روی نام فایل‌ها و پوشه‌ها کلیک کنید تا در مورد هر قرارداد بیشتر بیاموزید.

پوشه‌های سطح بالا

پوشه‌های سطح بالا برای سازماندهی کد برنامه و منابع استاتیک شما استفاده می‌شوند.


Route segments to path segmentsRoute segments to path segments
appروتر برنامه
pagesروتر صفحات
publicدارایی های استاتیکی که باید ارائه شوند
srcپوشه منبع برنامه اختیاری (source folder)

فایل های سطح بالا

فایل‌های سطح بالا برای پیکربندی برنامه شما، مدیریت وابستگی‌ها، اجرای واسطه‌ها، ادغام ابزارهای نظارت و تعریف متغیرهای محیطی استفاده می‌شوند.

Next.js
next.config.jsفایل پیکربندی برای Next.js
package.jsonوابستگی ها و اسکریپت های پروژه
instrumentation.tsفایل OpenTelemetry و ابزاردهی Instrumentation
middleware.tsمیان افزار درخواست Next.js
.envمتغیرهای محیطی
.env.localمتغیرهای محیطی local
.env.productionمتغیرهای محیط تولید production
.env.developmentمتغیرهای محیط توسعه development
.eslintrc.jsonفایل پیکربندی برای ESLint
.gitignoreفایل‌ها و پوشه‌هایی که در گیت باید نادیده گرفته شوند
next-env.d.tsفایل تعریف TypeScript برای Next.js
tsconfig.jsonفایل پیکربندی برای TypeScript
jsconfig.jsonفایل پیکربندی برای JavaScript

قراردادهای مسیریابی app

قراردادهای زیر برای تعریف مسیرها و مدیریت متادیتا (metadata) در مسیریاب app استفاده می‌شوند.

فایل های مسیریابی Routing

layout.js .jsx .tsxطرح بندی Layout
page.js .jsx .tsxصفحه Page
loading.js .jsx .tsxرابط کاربری بارگیری
not-found.js .jsx .tsxرابط کاربری پیدا نشد Not found UI
error.js .jsx .tsxرابط کاربری خطا Error UI
global-error.js .jsx .tsxرابط کاربری سراسری خطا
route.js .tsAPI endpoint
template.js .jsx .tsxرندر دوباره طرح بندی Re-rendered layout
default.js .jsx .tsxصفحه بازگشتی مسیر موازی Parallel route fallback page

مسیرهای تو در تو Nested Routes

folderبخش مسیر Route segment
folder/folderبخش مسیر تو در تو Nested route segment

مسیرهای داینامیک Dynamic Routes

[folder]بخش مسیر داینامیک Dynamic route segment
[...folder]بخش های دربرگیرنده همه (Catch-all)
[[...folder]]بخش های دربرگیرنده همه (Catch-all) اختیاری

گروه های مسیر و پوشه های خصوصی

(folder)گروه‌بندی مسیرها بدون تأثیر بر مسیریابی
_folderپوشه و تمام بخش‌های فرزند را از مسیریابی خارج کنید

مسیرهای موازی Parallel و رهگیری شده Intercepted

@folderنام گذاری بعنوان اسلات Named slot
(.)folderرهگیری در همان سطح
(..)folderرهگیری یک سطح بالاتر
(..)(..)folderرهگیری دو سطح بالاتر
(...)folderرهگیری از ریشه

فایل های قراردادی Metadata

آیکون های برنامه

favicon.icoفایل Favicon
icon.ico .jpg .jpeg .png .svgفایل آیکون برنامه
icon.js .ts .tsxآیکون برنامه ایجاد شده
apple-icon.jpg .jpeg, .pngفایل آیکون برنامه Apple
apple-icon.js .ts .tsxآیکون برنامه ایجاد شده Apple

Open Graph و Twitter Images

opengraph-image.jpg .jpeg .png .gifفایل تصویر Open Graph
opengraph-image.js .ts .tsxتصویر Open Graph ایجاد شده
twitter-image.jpg .jpeg .png .gifفایل تصویر Twitter
twitter-image.js .ts .tsxتصویر Twitter ایجاد شده

بهینه سازی موتورهای جستجو SEO

sitemap.xmlفایل نقشه سایت Sitemap
sitemap.js .tsنقشه سایت ایجاد شده Sitemap
robots.txtفایل Robots
robots.js .tsفایل Robots ایجاد شده

pages Routing Conventions

The following file conventions are used to define routes in the pages router.

Special Files

_app.js .jsx .tsxCustom App
_document.js .jsx .tsxCustom Document
_error.js .jsx .tsxCustom Error Page
404.js .jsx .tsx404 Error Page
500.js .jsx .tsx500 Error Page

Routes

Folder convention
index.js .jsx .tsxHome page
folder/index.js .jsx .tsxNested page
File convention
index.js .jsx .tsxHome page
file.js .jsx .tsxNested page

Dynamic Routes

Folder convention
[folder]/index.js .jsx .tsxDynamic route segment
[...folder]/index.js .jsx .tsxCatch-all route segment
[[...folder]]/index.js .jsx .tsxOptional catch-all route segment
File convention
[file].js .jsx .tsxDynamic route segment
[...file].js .jsx .tsxCatch-all route segment
[[...file]].js .jsx .tsxOptional catch-all route segment