میانافزار فایلهای استاتیک (StaticFiles)
میانافزار فایلهای استاتیک مسئول ارائه فایلهای استاتیک مانند CSS، JavaScript، تصاویر و سایر منابع است.
هدف
این میانافزار درخواستهای فایلهای استاتیک را شناسایی کرده و آنها را از دایرکتوریهای مربوطه ارائه میدهد.
نحوه کار
- بررسی تطابق URL با مسیرهای استاتیک
- جستجو فایل در دایرکتوریهای برنامه مورد نظر و اشتراکی
- ارائه فایل با هدرهای مناسب
- مدیریت فایلهای آپلود شده
مسیرهای استاتیک
فایلهای برنامه
/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 - پشتیبانی از فایلهای آپلود شده: یکپارچهسازی با سیستم ذخیرهسازی
- بررسی وجود فایل: اطمینان از وجود فایل قبل از ارائه
مدیریت فایلهای آپلود شده
برای فایلهای آپلود شده:
- استخراج نام فایل از URL
- جستجو در پایگاه داده
- بازیابی از سیستم ذخیرهسازی
- ارائه با نوع 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