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
:سلسلة نصية
- الصفحة داخل دليلpages
التي سيتم عرضهاquery
:كائن
- كائنالاستعلام
الذي يتم تمريره إلى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
. لا ننصح باستخدامهما معًا.