پوشه public در Next.js — ارائه فایل‌های استاتیک با مسیرهای مستقیم

پوشه public در Next.js برای ارائه فایل‌های استاتیک مانند تصاویر، فونت‌ها و فایل‌های متنی استفاده می‌شود. فایل‌های داخل این پوشه از طریق مسیر مستقیم قابل دسترسی هستند و بدون نیاز به import یا بارگذاری خاص در مرورگر نمایش داده می‌شوند. این مقاله نحوهٔ استفاده از public، نمایش تصاویر، و رفتار کشینگ را توضیح می‌دهد.

public folderstatic assetsNext.js imageCache-Control

~2 دقیقه مطالعه · آخرین به‌روزرسانی ۷ آبان ۱۴۰۴

۱. پوشه public چیست؟


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


مثال:

اگر فایلی به نام public/avatars/me.png داشته باشید، می‌توانید آن را با مسیر /avatars/me.png در مرورگر مشاهده کنید.


۲. نمایش تصویر با کامپوننت Image


برای نمایش تصاویر از public، می‌توانید از کامپوننت Image در Next.js استفاده کنید:

// avatar.js
import Image from 'next/image'

export function Avatar({ id, alt }) {
  return <Image src={`/avatars/${id}.png`} alt={alt} width="64" height="64" />
}

export function AvatarOfMe() {
  return <Avatar id="me" alt="A portrait of me" />
}

۳. رفتار کشینگ فایل‌ها


Next.js به‌صورت پیش‌فرض فایل‌های داخل public را کش نمی‌کند، چون ممکن است در زمان اجرا تغییر کنند. هدر کشینگ پیش‌فرض به شکل زیر است:

Cache-Control: public, max-age=0

این یعنی مرورگر فایل را دریافت می‌کند اما آن را کش نمی‌کند مگر اینکه تنظیمات سرور تغییر کند.


۴. نکات مهم


  • فایل‌های public در زمان build پردازش نمی‌شوند
  • برای فایل‌هایی که نیاز به import یا بارگذاری خاص ندارند، مناسب هستند
  • برای تصاویر داینامیک یا بهینه‌سازی‌شده، بهتر است از پوشه app و Image با src داخلی استفاده شود

جمع‌بندی


پوشه public در Next.js راهی ساده و مستقیم برای ارائه فایل‌های استاتیک است. با استفاده از مسیرهای پایه، می‌توانید تصاویر، فایل‌های متنی و سایر منابع را بدون پیچیدگی در اپلیکیشن خود نمایش دهید. فقط توجه داشته باشید که کشینگ این فایل‌ها محدود است و برای فایل‌های حساس یا داینامیک بهتر است از روش‌های دیگر استفاده شود.


نوشته و پژوهش‌شده توسط دکتر شاهین صیامی

مقالات مرتبط

مسیریابی پیشرفته و هوک‌های عملکرد در Next.js — راهنمای توسعه‌دهنده برای App Router

Next.js مجموعه‌ای غنی از هوک‌های کلاینت و ابزارهای کش و ناوبری را در اختیار توسعه‌دهندگان قرار می‌دهد. از خواندن پارامترهای مسیر تا گزارش Web Vitals و مدیریت کش، این مقاله مهم‌ترین ابزارهای App Router را با مثال‌های کاربردی معرفی می‌کند.

ادامه

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

Next.js با معرفی قابلیت‌های آزمایشی جدید، امکان کنترل دقیق‌تر دسترسی و کش داده‌ها را فراهم کرده است. تابع unauthorized برای مدیریت خطای 401 و هدایت کاربران به صفحه ورود، unstable_cache برای کش هوشمند عملیات سنگین، updateTag برای بازسازی آنی داده‌ها، و useLinkStatus برای نمایش وضعیت ناوبری استفاده می‌شوند. این مقاله نحوه استفاده از این ابزارها را با مثال‌های کاربردی و نکات مهم بررسی می‌کند.

ادامه

redirect و refresh در Next.js — ریدایرکت‌های هوشمند و تازه‌سازی مسیر در Server Actions

تابع redirect در Next.js برای هدایت کاربر به مسیر جدید استفاده می‌شود و بسته به نوع استفاده، پاسخ HTTP با وضعیت 307 یا 303 ارسال می‌کند. این تابع در Server Components، Client Components، Route Handlers و Server Actions قابل استفاده است. تابع refresh نیز برای تازه‌سازی مسیر کلاینت از درون Server Action استفاده می‌شود. این مقاله نحوه استفاده از هر دو تابع را با مثال‌های کاربردی و نکات مهم توضیح می‌دهد.

ادامه

Next.js با معرفی NextRequest و NextResponse، APIهای Request و Response مرورگر را گسترش داده و ابزارهای قدرتمندی برای مدیریت کوکی‌ها، هدرها، ریدایرکت‌ها، بازنویسی مسیرها و پاسخ‌های JSON فراهم کرده است. این مقاله نحوه استفاده از این ابزارها را با مثال‌های کاربردی و نکات امنیتی توضیح می‌دهد.

Next.js با معرفی NextRequest و NextResponse، APIهای Request و Response مرورگر را گسترش داده و ابزارهای قدرتمندی برای مدیریت کوکی‌ها، هدرها، ریدایرکت‌ها، بازنویسی مسیرها و پاسخ‌های JSON فراهم کرده است. این مقاله نحوه استفاده از این ابزارها را با مثال‌های کاربردی و نکات امنیتی توضیح می‌دهد.

ادامه

headers، ImageResponse، notFound و permanentRedirect در Next.js — مدیریت درخواست‌ها، تولید تصویر، خطا و ریدایرکت

Next.js ابزارهای قدرتمندی برای مدیریت درخواست‌ها و پاسخ‌ها در کامپوننت‌های سروری فراهم کرده است. تابع headers برای خواندن هدرهای HTTP ورودی، ImageResponse برای تولید تصاویر داینامیک، notFound برای نمایش صفحه خطای 404، و permanentRedirect برای ریدایرکت دائمی کاربران استفاده می‌شوند. این مقاله نحوه استفاده از هر یک را با مثال‌های کاربردی توضیح می‌دهد.

ادامه

راهنمای کامل استفاده از metadata و generateMetadata در Next.js

در نسخه‌های مدرن Next.js، مدیریت metadata صفحات بسیار قدرتمندتر و ساده‌تر شده است. metadata به‌صورت خودکار در تگ <head> صفحات تزریق می‌شود و نقش مهمی در SEO، اشتراک‌گذاری اجتماعی و تجربه کاربری دارد. این مقاله دو روش اصلی تعریف metadata را بررسی می‌کند: استفاده از آبجکت ثابت metadata و تابع داینامیک generateMetadata.

ادامه