favicon، icon و apple-icon در Next.js — تنظیم آیکون‌های اپلیکیشن با فایل یا کد

Next.js از conventions خاصی برای تنظیم آیکون‌های اپلیکیشن پشتیبانی می‌کند: favicon، icon و apple-icon. این آیکون‌ها در مرورگر، صفحه اصلی موبایل و نتایج موتور جستجو نمایش داده می‌شوند. می‌توان آن‌ها را با فایل‌های تصویری یا به‌صورت برنامه‌نویسی با ImageResponse تولید کرد. این مقاله نحوهٔ استفاده از هر روش، محل قرارگیری فایل‌ها، و تنظیمات متادیتا را توضیح می‌دهد.

faviconapple-iconImageResponsehead tags

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

۱. انواع آیکون‌ها در Next.js


Next.js از سه نوع آیکون پشتیبانی می‌کند:

  • favicon: برای تب مرورگر
  • icon: برای آیکون عمومی اپلیکیشن
  • apple-icon: برای صفحه اصلی دستگاه‌های اپل

۲. روش‌های تنظیم آیکون


دو روش برای تنظیم آیکون وجود دارد:

  1. استفاده از فایل تصویری (.ico، .jpg، .png)
  2. تولید آیکون با کد (.js، .ts، .tsx)

۳. استفاده از فایل تصویری


نوع فایلفرمت‌های پشتیبانی‌شدهمحل معتبر
favicon.icoفقط در app/
icon.ico، .jpg، .png، .svgدر هر مسیر داخل app
apple-icon.jpg، .pngدر هر مسیر داخل app

نمونه خروجی در <head>:

<link rel="icon" href="/favicon.ico" sizes="any" />
<link rel="icon" href="/icon?...generated" type="image/png" sizes="32x32" />
<link rel="apple-touch-icon" href="/apple-icon?...generated" type="image/png" sizes="180x180" />

۴. تولید آیکون با کد


برای تولید آیکون با کد، از API ImageResponse در next/og استفاده کنید:

// app/icon.tsx
import { ImageResponse } from 'next/og'

export const size = { width: 32, height: 32 }
export const contentType = 'image/png'

export default function Icon() {
  return new ImageResponse(
    <div style={{
      fontSize: 24,
      background: 'black',
      width: '100%',
      height: '100%',
      display: 'flex',
      alignItems: 'center',
      justifyContent: 'center',
      color: 'white',
    }}>
      A
    </div>,
    { ...size }
  )
}

نکات مهم:

  • آیکون‌های تولیدشده به‌صورت پیش‌فرض در زمان build بهینه‌سازی و کش می‌شوند
  • نمی‌توان favicon را با کد تولید کرد — فقط با فایل .ico
  • می‌توان چند آیکون را با پسوند عددی مانند icon1.png، icon2.png تعریف کرد

۵. پارامترهای ورودی و خروجی


تابع export شده می‌تواند پارامترهای داینامیک مسیر را دریافت کند:

export default async function Icon({ params }) {
  const { slug } = await params
}

خروجی تابع باید یکی از انواع زیر باشد:

  • Blob
  • ArrayBuffer
  • TypedArray
  • ReadableStream
  • Response

۶. تنظیمات متادیتا


می‌توانید متادیتای آیکون را با export کردن متغیرهای زیر تنظیم کنید:

export const size = { width: 32, height: 32 }
export const contentType = 'image/png'

جمع‌بندی


Next.js با پشتیبانی از فایل‌های تصویری و تولید آیکون با کد، امکان تنظیم آیکون‌های اپلیکیشن را به‌صورت منعطف فراهم می‌کند. با استفاده از conventions مناسب و APIهای قدرتمند، می‌توانید تجربه کاربری حرفه‌ای و قابل شخصی‌سازی برای اپلیکیشن خود بسازید.


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

مقالات مرتبط

مسیریابی پیشرفته و هوک‌های عملکرد در 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.

ادامه