يقدم هذا الفصل إطار Go Iris وكيفية التعامل مع الملفات الثابتة. في بعض الأحيان في مشروع ما، هناك بعض الملفات الثابتة التي يجب عرضها مباشرة لوصول المستخدم. كيف يمكن تهيئة ذلك؟
Iris يعرض الملفات الثابتة
func main() {
app := iris.New()
// تعيين أيقونة الصفحة
app.Favicon("./resources/favicon.ico")
// تعيين المسار للملفات الثابتة وربط مسار URL
app.HandleDir("/assets", iris.Dir("./assets"))
app.Listen(":8080")
}
تقبل طريقة HandleDir معامل اختياري ثالث DirOptions:
type DirOptions struct {
// القيمة الافتراضية هي "/index.html". إذا انتهت مسار الطلب بـ **/*/$اسمIndex، فإنه يقوم بإعادة توجيه إلى **/*(/)،
// مما يؤدي إلى معالج آخر يتم تقديمه تلقائيًا بواسطة الإطار كمعالج فهرس مسجل بشكل افتراضي
// إذا لم يتعامل المطور النهائي معه يدويًا.
IndexName string
// أسماء الملفات (القيم المعينة) للخدمة بدون طلبات العميل الإضافية (HTTP/2 Push) عند طلب المسار المحدد (مفتاح الخريطة بدون البادئة)
// المسار المطلوب (المفتاح في الخريطة بدون البادئة) ليس دليلًا (هو `IndexFile`) أو عند الحاجة.
// PushTargetsRegexp مثل `PushTargets` ولكنه يقبل تعبيرًا منتظمًا يتم مقارنته مع جميع الملفات تحت الدليل (بشكل متكرر).
// يجب تعيين "IndexName".
// مثال
// "/": regexp.MustCompile("((.*).js|(.*).css|(.*).ico)$")
// انظر أيضًا `iris.MatchCommonAssets`.
PushTargetsRegexp map[string]*regexp.Regexp
// تخزين مؤقت لتمكين التخزين المؤقت في الذاكرة والملفات المضغوطة مسبقًا.
Cache DirCacheOptions
// عندما يجب خدمة الملفات في حالة مضغوطة.
Compress bool
// قائمة الملفات في دليل الطلب الحالي إذا لم يتم العثور على "IndexName".
ShowList bool
// إذا كان "ShowList" صحيحًا، فستُستخدم هذه الوظيفة لعرض قائمة الملفات في دليل الطلب الحالي (dir)
// بدلاً من الوظيفة الافتراضية.
DirList DirListFunc
// تنزيل وحفظها في ملفات محلية.
Attachments Attachments
// محقق اختياري لاستخدامه في تكرار كل مورد للطلب.
AssetValidator func(ctx *context.Context, name string) bool
}