إدارة الأصول الثابتة: توصيل CDN مع كسر التخزين المؤقت

تشرح هذه المقالة كيفية إدارة وتوصيل أوراق أنماط CSS وجافا سكريبت والأصول الثابتة الأخرى بكفاءة.

المشكلة: تحتاج الأصول الثابتة إلى التحسين

تحمل الصفحة النموذجية:

  • ملفات CSS: أوراق الأنماط للتخطيط والتصميم

  • ملفات JavaScript: كود التطبيق والمكتبات

  • الصور: صور المنتج، الصور المصغرة، الأيقونات

  • الخطوط: خطوط الويب للطباعة

بدون التحسين:

  • التنزيلات البطيئة: الملفات الكبيرة تستغرق وقتًا

  • لا يوجد تخزين مؤقت: إعادة التنزيل في كل زيارة

  • لا يوجد ضغط: إهدار في عرض النطاق الترددي

  • لا يوجد CDN: بطيء للمستخدمين العالميين

هذا يؤدي إلى أوقات تحميل للصفحة تتراوح بين 3-5 ثوانٍ.

الحل: S3 + CloudFront + كسر التخزين المؤقت

نستخدم استراتيجية ثلاثية الأجزاء:

  1. تخزين S3: تخزين كائنات قابل للتوسع للأصول
  2. CDN CloudFront: مواقع حافة عالمية للتوصيل السريع
  3. كسر التخزين المؤقت: عناوين URL المستندة إلى الإصدار تفرض التحديثات

تخزين الأصول الثابتة

يتم تخزين الأصول الثابتة في S3:

  • دلو S3: تخزين كائنات للملفات الثابتة

  • المحتوى: CSS، JavaScript، الصور، الخطوط

  • التنظيم: منظم حسب نوع الأصل

توصيل CloudFront

يقوم CloudFront بتقديم الأصول الثابتة:

  • مواقع الحافة: CDN عالمي للتوصيل السريع

  • التخزين المؤقت: TTL طويل للأصول الثابتة

  • الضغط: Gzip للأصول المستندة إلى النص

  • SSL/TLS: HTTPS لتوصيل جميع الأصول

كسر التخزين المؤقت

نستخدم إصدارات لكسر التخزين المؤقت:

  • أرقام الإصدار: إصدار الأصل في اسم الملف

  • البيان المركزي: سجل مركزي لإصدارات الأصول

  • التحديثات التلقائية: إصدار جديد يحفز إبطال التخزين المؤقت

تحسين الأصول

نحسن الأصول للأداء:

  • التصغير: تصغير CSS وJavaScript

  • تحسين الصور: تنسيق WebP، صور متجاوبة

  • أوراق الرسوم المتحركة: CSS sprites للأيقونات

  • تقسيم الكود: التحميل البطيء للأصول غير الحرجة

خط أنابيب الأصول

يتدفق خط أنابيب الأصول عبر هذه المراحل:

  1. الأصول المصدرية: CSS، JavaScript، والصور الأصلية
  2. التصغير: إزالة المسافات البيضاء، تقصير أسماء المتغيرات
  3. إصدار: إضافة تجزئة الإصدار إلى اسم الملف
  4. تحميل S3: التخزين في تخزين الكائنات
  5. CDN CloudFront: التوزيع إلى مواقع الحافة
  6. التخزين المؤقت في المتصفح: التخزين المؤقت على جانب العميل

تضمين الأصول

يتم تضمين الأصول في القوالب:

  • CSS: <link rel="stylesheet">

  • JavaScript: <script src="">

  • الصور: <img src="">

  • الإصدار: مضمن تلقائيًا من البيان المركزي

ملخص

توفر إدارة الأصول الثابتة:

  • تخزين S3: CSS، JavaScript، الصور، الخطوط

  • CDN CloudFront: توصيل عالمي سريع

  • كسر التخزين المؤقت: أرقام إصدار للتحديثات

  • التحسين: تصغير، ضغط، تحسين

  • التحديثات التلقائية: توصيل أصول مصنفة بالإصدار