پرش به مطلب اصلی

میان‌افزار فایل‌های استاتیک (StaticFiles)

میان‌افزار فایل‌های استاتیک مسئول ارائه فایل‌های استاتیک مانند CSS، JavaScript، تصاویر و سایر منابع است.

هدف

این میان‌افزار درخواست‌های فایل‌های استاتیک را شناسایی کرده و آنها را از دایرکتوری‌های مربوطه ارائه می‌دهد.

نحوه کار

  1. بررسی تطابق URL با مسیرهای استاتیک
  2. جستجو فایل در دایرکتوری‌های برنامه مورد نظر و اشتراکی
  3. ارائه فایل با هدرهای مناسب
  4. مدیریت فایل‌های آپلود شده

مسیرهای استاتیک

فایل‌های برنامه

/assets/[app_name]/[path]

فایل‌های اشتراکی

/shared/[path]

فایل‌های آپلود شده

/uploads/[filename]

تنظیمات مرتبط

// تنظیمات برنامه
APPS_RESOURCES_PATH: "/path/to/apps"
ASSETS_SUFFIX: "assets"
SHARED_ASSETS_URL: "/shared"
PREFIX_URL: "/api"

// تنظیمات آپلود
UPLOAD_INFO: {
url: "/uploads"
}

ویژگی‌ها

  • ارائه سریع: استفاده از res.sendFile() برای ارائه بهینه
  • هدرهای امنیتی: تنظیم هدرهای x-timestamp و x-sent
  • پشتیبانی از فایل‌های آپلود شده: یکپارچه‌سازی با سیستم ذخیره‌سازی
  • بررسی وجود فایل: اطمینان از وجود فایل قبل از ارائه

مدیریت فایل‌های آپلود شده

برای فایل‌های آپلود شده:

  1. استخراج نام فایل از URL
  2. جستجو در پایگاه داده
  3. بازیابی از سیستم ذخیره‌سازی
  4. ارائه با نوع MIME مناسب

خطاها

  • 404 Not exist asset: فایل استاتیک یافت نشد
  • 404 Not found file in db: فایل آپلود شده در پایگاه داده یافت نشد
  • 404 Not found file: فایل آپلود شده در ذخیره‌سازی یافت نشد

مثال استفاده

// فایل CSS برنامه
GET /assets/myapp/css/style.css

// فایل تصویر اشتراکی
GET /shared/images/logo.png

// فایل آپلود شده
GET /uploads/document.pdf