ملفات ثابتة، مضغوطة لتحقيق الكفاءة. حاليا، يتطلب الصدأ ليلا.
في هذا المثال، نستخدم ماكرو لتقييم المسار في وقت الترجمة، بالنسبة إلى الملف المصدر. في وضع التصحيح، سيتم تحميل الملفات في وقت التشغيل. في وضع الإصدار، يتم تضمين الملفات (وضغطها بشكل مناسب) في الملف الثنائي المترجم.
let files : MiniCdn = release_include_mini_cdn ! ( "./path/to/public/files/" ) ;
let html = files . get ( "index.html" ) . unwrap ( ) ;
// 32 byte digest of the file.
let _ = html . etag ;
// Last modified time as string, in UNIX seconds.
let _ = html . last_modified ;
// MIME type string.
let _ = html . mime ;
// Raw HTML bytes.
let _ = html . contents ;
// HTML compressed with Brotli, if it is more efficient.
let _ = html . contents_brotli ;
// HTML compressed with GZIP, if it is more efficient.
let _ = html . contents_gzip ;
let image = files . get ( "images/foo.png" ) . unwrap ( ) ;
// Raw PNG bytes.
let _ = image . contents ;
// WebP bytes (if WebP is more efficient).
let _ = image . contents_webp ;
يتم تعطيل كافة الحقول (باستثناء contents
) بشكل افتراضي، ولكن يمكن تشغيلها بواسطة علامة الميزة المقابلة.
تحقق من الوثائق بحثًا عن خيارات أخرى، مثل إجراء الضغط في وقت التشغيل.
يوجد دعم تجريبي لتخصيص الضغط باستخدام ملف التكوين. إذا كانت لديك صورة باسم some_image.png
، فيمكنك وضع ما يلي في ملف جديد باسم some_image.minicdn
لضبط مستوى جودة WebP.
webp_quality = 75.0
الخيارات التالية متاحة:
brotli_level
(1-11، الافتراضي 9)brotli_buffer_size
(البايت، الافتراضي 4096)brotli_large_window_size
(الافتراضي 20)gzip_level
(1-9، الافتراضي 9)webp_quality
(0-100 أو "بدون فقدان"، الافتراضي 90) مرخص بموجب أي من
في خيارك.
ما لم تنص صراحةً على خلاف ذلك، فإن أي مساهمة يتم تقديمها عمدًا لتضمينها في العمل بواسطتك، كما هو محدد في ترخيص Apache-2.0، يجب أن تكون مرخصة بشكل مزدوج على النحو الوارد أعلاه، دون أي شروط أو أحكام إضافية.