الفرق بين المراجعتين لصفحة: «Next.js/multi zones»

من موسوعة حسوب
لا ملخص تعديل
طلا ملخص تعديل
 
(3 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 2: سطر 2:
يُطلق اسم حيّز Zone على توزيعة مفردة من تطبيق Next.js، وبإمكانك دمج عدة حيّزات في تطبيق واحد.  
يُطلق اسم حيّز Zone على توزيعة مفردة من تطبيق Next.js، وبإمكانك دمج عدة حيّزات في تطبيق واحد.  


لنفترض أن لديك مثلًا تطبيقين:
لنفترض أن لديك مثلًا تطبيقان:


* الأول هو تطبيق يخدّم مدوّنة <code>/blog/**</code>.
* الأول هو تطبيق يخدّم مدوّنة <code>**/blog/</code>.
* الثاني لتخديم جميع الصفحات الأخرى.
* الثاني لتخديم جميع الصفحات الأخرى.


سطر 13: سطر 13:


* تحقق من إبقاء الصفحات التي تحتاجها فقط في التطبيق. ومعنى ذلك أنه لا يمكن لتطبيق "أ" أن يضم المجلد <code>blog/</code> مثلًا ، إن كان التطبيق الآخر "ب" يضمه أيضًا.
* تحقق من إبقاء الصفحات التي تحتاجها فقط في التطبيق. ومعنى ذلك أنه لا يمكن لتطبيق "أ" أن يضم المجلد <code>blog/</code> مثلًا ، إن كان التطبيق الآخر "ب" يضمه أيضًا.
* تأكد من إعداد [[Next.sj/next.config.js|مسار أساسي]] لتحاشي التعارض بين الصفحات والملفات الساكنة.
* تأكد من إعداد [[Next.js/next.config.js|مسار أساسي basePath]] لتحاشي التعارض بين الصفحات والملفات الساكنة.


=== كيفية دمج الحيزات ===
== كيفية دمج الحيزات ==
يمكن دمج الحيزات باستخدام [[Next.js/rewrites|Rewrites]] في أحد التطبيقات أو في أي خادم HTTP وكيل. إذ يمكنك مثلًا استخدام [https://vercel.com/blog/monorepos monorepo] في [https://vercel.com/ Vercel] لنشر كلا التطبيقين.
يمكن دمج الحيزات باستخدام [[Next.js/next.config.js#.D9.85.D8.B9.D8.A7.D9.85.D9.84.D8.A7.D8.AA .D8.A7.D9.84.D8.AF.D8.A7.D9.84.D8.A9 rewrites|Rewrites]] في أحد التطبيقات أو في أي خادم HTTP وكيل. كما يمكنك مثلًا استخدام [https://vercel.com/blog/monorepos monorepo] في [https://vercel.com/ Vercel] لنشر كلا التطبيقين.


يمكنك الاطلاع على آلية الدمج من خلال [https://github.com/vercel/next.js/tree/canary/examples/with-zones الأمثلة الخاصة بالموضوع على GitHub].
يمكنك الاطلاع على آلية الدمج من خلال [https://github.com/vercel/next.js/tree/canary/examples/with-zones الأمثلة الخاصة بالموضوع على GitHub].
سطر 23: سطر 23:


* الصفحة [https://nextjs.org/docs/advanced-features/multi-zones Multi Zones] من توثيق Next.js الرسمي.
* الصفحة [https://nextjs.org/docs/advanced-features/multi-zones Multi Zones] من توثيق Next.js الرسمي.
[[تصنيف:Next.js|{{SUBPAGENAME}}]]
[[تصنيف:Next.js Advanced Features|{{SUBPAGENAME}}]]

المراجعة الحالية بتاريخ 17:08، 3 يناير 2023

يُطلق اسم حيّز Zone على توزيعة مفردة من تطبيق Next.js، وبإمكانك دمج عدة حيّزات في تطبيق واحد.

لنفترض أن لديك مثلًا تطبيقان:

  • الأول هو تطبيق يخدّم مدوّنة **/blog/.
  • الثاني لتخديم جميع الصفحات الأخرى.

يمكنك دمج التطبقين السابقين في تطبيق واحد ليتصفحهما المستخدم تحت العنوان ذاته نظرًا لدعم Next.js لتعدد الحيزات multi zones. كما يمكنك أيضًا تطوير ونشر كل منهما بشكل مستقل.

كيفية تعريف حيز

لا توجد واجهة برمجية تتعلق بالحيزات، وكل ما عليك فعله هو التالي:

  • تحقق من إبقاء الصفحات التي تحتاجها فقط في التطبيق. ومعنى ذلك أنه لا يمكن لتطبيق "أ" أن يضم المجلد blog/ مثلًا ، إن كان التطبيق الآخر "ب" يضمه أيضًا.
  • تأكد من إعداد مسار أساسي basePath لتحاشي التعارض بين الصفحات والملفات الساكنة.

كيفية دمج الحيزات

يمكن دمج الحيزات باستخدام Rewrites في أحد التطبيقات أو في أي خادم HTTP وكيل. كما يمكنك مثلًا استخدام monorepo في Vercel لنشر كلا التطبيقين.

يمكنك الاطلاع على آلية الدمج من خلال الأمثلة الخاصة بالموضوع على GitHub.

المصادر

  • الصفحة Multi Zones من توثيق Next.js الرسمي.