exportPathMap
هذه الميزة حصرية لـ
next exportوهي حاليًا مهملة لصالحgetStaticPathsمعpagesأوgenerateStaticParamsمعapp.
أمثلة
exportPathMap تسمح لك بتحديد تعيين مسارات الطلبات إلى وجهات الصفحات، لاستخدامها أثناء التصدير. المسارات المعرفة في exportPathMap ستكون متاحة أيضًا عند استخدام next dev.
لنبدأ بمثال، لإنشاء exportPathMap مخصص لتطبيق به الصفحات التالية:
pages/index.jspages/about.jspages/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 هي دالة async تستقبل وسيطتين: الأولى هي defaultPathMap، وهي الخريطة الافتراضية التي يستخدمها Next.js. الوسيطة الثانية هي كائن يحتوي على:
dev-trueعندما يتم استدعاءexportPathMapفي وضع التطوير.falseعند تشغيلnext export. في التطوير،exportPathMapيستخدم لتعريف المسارات.dir- المسار المطلق لدليل المشروعoutDir- المسار المطلق لدليلout/قابل للتخصيص باستخدام-o]. عندما يكونdevهوtrue، ستكون قيمةoutDirهيnull.distDir- المسار المطلق لدليل.next/قابل للتخصيص باستخدام تكوينdistDirbuildId- معرف البناء المُنشأ
الكائن المُعاد هو خريطة للصفحات حيث يكون المفتاح هو مسار الصفحة والقيمة هي كائن يقبل الحقول التالية:
page:String- الصفحة داخل دليلpagesالتي سيتم عرضهاquery:Object- كائن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. لا نوصي باستخدامهما معًا.