exportPathMap
هذه الميزة حصرية لـ
next export
وهي حالياً مهملة لصالحgetStaticPaths
معpages
أوgenerateStaticParams
معapp
.
أمثلة
exportPathMap
تسمح لك بتحديد تعيين مسارات الطلبات إلى وجهات الصفحات، لاستخدامها أثناء التصدير. المسارات المعرفة في exportPathMap
ستكون متاحة أيضاً عند استخدام next dev
.
لنبدأ بمثال، لإنشاء exportPathMap
مخصص لتطبيق به الصفحات التالية:
pages/index.js
pages/about.js
pages/post.js
افتح next.config.js
وأضف تكوين exportPathMap
التالي:
module.exports = {
exportPathMap: async function (
defaultPathMap,
{ dev, dir, outDir, distDir, buildId }
) {
return {
'/': { page: '/' },
'/about': { page: '/about' },
'/p/hello-nextjs': { page: '/post', query: { title: 'hello-nextjs' } },
'/p/learn-nextjs': { page: '/post', query: { title: 'learn-nextjs' } },
'/p/deploy-nextjs': { page: '/post', query: { title: 'deploy-nextjs' } },
}
},
}
من الجيد معرفة: حقل
query
فيexportPathMap
لا يمكن استخدامه مع الصفحات المحسنة ثابتاً تلقائياً أو صفحاتgetStaticProps
لأنها تُصدر إلى ملفات HTML أثناء وقت البناء ولا يمكن توفير معلومات استعلام إضافية أثناءnext export
.
سيتم بعد ذلك تصدير الصفحات كملفات HTML، على سبيل المثال، /about
ستصبح /about.html
.
exportPathMap
هي دالة غير متزامنة
تستقبل وسيطين: الأول هو defaultPathMap
، وهو الخريطة الافتراضية التي يستخدمها Next.js. الوسيط الثاني هو كائن يحتوي على:
dev
-true
عندما يتم استدعاءexportPathMap
في وضع التطوير.false
عند تشغيلnext export
. في التطوير،exportPathMap
يستخدم لتعريف المسارات.dir
- المسار المطلق لمجلد المشروعoutDir
- المسار المطلق لمجلدout/
قابل للتخصيص باستخدام-o
). عندما يكونdev
هوtrue
فإن قيمةoutDir
ستكونnull
.distDir
- المسار المطلق لمجلد.next/
(قابل للتخصيص باستخدام تكوينdistDir
)buildId
- معرف البناء المُنشأ
الكائن المُعاد هو خريطة للصفحات حيث يكون المفتاح
هو مسار الصفحة
و القيمة
هي كائن يقبل الحقول التالية:
page
:String
- الصفحة داخل مجلدpages
التي سيتم عرضهاquery
:Object
- كائنالاستعلام
الذي يتم تمريره إلىgetInitialProps
عند التصيير المسبق. القيمة الافتراضية هي{}
يمكن أن يكون
مسار الصفحة
المُصدر أيضاً اسم ملف (على سبيل المثال/readme.md
)، ولكن قد تحتاج إلى تعيين رأسContent-Type
إلىtext/html
عند تقديم محتواه إذا كان مختلفاً عن.html
.
إضافة شرطة مائلة في النهاية
من الممكن تكوين Next.js لتصدير الصفحات كملفات index.html
وتطلب شرطة مائلة في النهاية، /about
تصبح /about/index.html
ويمكن الوصول إليها عبر /about/
. كان هذا السلوك الافتراضي قبل Next.js 9.
للرجوع إلى هذا السلوك وإضافة شرطة مائلة في النهاية، افتح next.config.js
وقم بتمكين تكوين trailingSlash
:
module.exports = {
trailingSlash: true,
}
تخصيص مجلد الإخراج
next export
سيستخدم out
كمجلد إخراج افتراضي، يمكنك تخصيص هذا باستخدام وسيط -o
، كما يلي:
next export -o outdir
تحذير: استخدام
exportPathMap
مهمل ويتم تجاوزه بواسطةgetStaticPaths
داخلpages
. لا ننصح باستخدامهما معاً.