يوفر ASP.NET HttpHandler للمساعدة في إنشاء ملف sitemap.xml ديناميكي
يوجد أيضًا ملحق خاص بـ Umbraco لـ Sitemapify يدعم إنشاء خريطة الموقع من محتوى Umbraco CMS. راجع Sitemapify.Umbraco لمزيد من الوثائق
Install-Package Sitemapify
من المفترض أن تقوم عملية التثبيت بتحديث ملف web.config الخاص بك ليشمل معالج http لمعالجة الطلبات إلى sitemap.xml
، ويجب أن يبدو مشابهًا لما يلي:
< configuration > < system .webServer> < handlers > < add name = " Sitemapify " path = " sitemap.xml " verb = " GET " type = " Sitemapify.SitemapifyHttpHandler, Sitemapify " /> handlers > system .webServer> configuration >
يمكن تخصيص معالج خريطة الموقع عن طريق تغيير التكوين الأساسي عبر فئة التكوين الثابت Sitemapify.Configure
.
Sitemapify . Configure ( c => c
. UsingContentProvider ( new YourContentProvider ( ) )
. UsingCacheProvider ( new YourCacheProvider ( ) )
. UsingDocumentBuilder ( new YourDocumentBuilder ( ) )
) ;
يتم تقسيم Sitemapify إلى موفري خدمة مسؤولين عن عناصر إنشاء خريطة الموقع.
ISitemapifyContentProvider
) يؤدي تنفيذ موفر المحتوى إلى تزويد Sitemapify بمجموعة من كائنات SitemapUrl
التي تمثل العقد المراد إخراجها داخل خريطة الموقع.
public interface ISitemapContentProvider
{
IEnumerable < SitemapUrl > GetSitemapUrls ( ) ;
bool Cacheable { get ; }
DateTime CacheUntil { get ; }
}
ISitemapifyCacheProvider
)يسمح تطبيق موفر ذاكرة التخزين المؤقت بتخصيص آلية التخزين المؤقت المستخدمة لتحسين تسليم خريطة الموقع إلى المتصفح. بمجرد إنشاء مستند خريطة الموقع، سيتم تخزينه مؤقتًا عبر التنفيذ الذي تم تكوينه لهذه الواجهة.
public interface ISitemapCacheProvider
{
void Add ( XDocument sitemapContent , DateTimeOffset ? expires ) ;
bool IsCached { get ; }
XDocument Get ( ) ;
void Remove ( ) ;
}
ISitemapDocumentBuilder
) يسمح تطبيق ISitemapDocumentBuilder
بالتخصيص الكامل لمستند خريطة الموقع نفسه. يُنشئ التنفيذ الافتراضي مستند خريطة موقع متوافقًا تمامًا استنادًا إلى ملف sitemap.xsd الرسمي.
public interface ISitemapDocumentBuilder
{
XDocument BuildSitemapXmlDocument ( IEnumerable < SitemapUrl > sitemapUrls ) ;
}
هذا الإصدار من Sitemapify.Umbraco يدعم Umbraco 8.1+. للحصول على دعم Umbraco v7.*، يرجى الرجوع إلى الإصدار 0.5.2.
أولاً قم بتثبيت ملحق Umbraco:
Install-Package Sitemapify.Umbraco
بمجرد تثبيت Sitemapify.Umbraco، يمكنك إنشاء مكون لتكوين Sitemapify لاستخدام "موفر محتوى Umbraco" المتوفر لإنشاء عنوان URL لخريطة الموقع الذي يشكل ملف sitemap.xml.
public class SitemapifyComponent : IComponent
{
public void Initialize ( )
{
Configure . With ( config => config . UsingContentProvider ( new SitemapifyUmbracoContentProvider ( ) ) ) ;
}
public void Terminate ( ) { }
}
ستحتاج أيضًا إلى إنشاء UserComposer لتسجيل المكون.
public class SitemapifyComposer : IUserComposer
{
public void Compose ( Composition composition )
{
composition . Components ( ) . Append < SitemapifyComponent > ( ) ;
}
}
افتراضيًا، سيبحث موفر محتوى Umbraco عن خصائص عقدة المحتوى بأسماء محددة لتحديد ما إذا كان يجب تضمين عقدة معينة في ملف خريطة الموقع الذي تم إنشاؤه، وأسماء الخصائص هذه هي:
umbracoNaviHide
- True/False لتحديد ما إذا كانت هذه العقدة مضمنة (الافتراضي: false)sitemapifyExcludeChildren
- True/False لتحديد ما إذا كان سيتم تجاهل كافة العقد الفرعية الموجودة أسفل هذه العقدة (الافتراضي: false)إذا كنت تريد تغيير هذه الأسماء المستعارة للملكية، فيمكنك تجاوزها عبر إعدادات التطبيق:
< appSettings > < add key = " Sitemapify.Umbraco:ExcludedFromSitemapPropertyAlias " value = " newPropertyAlias " /> < add key = " Sitemapify.Umbraco:ExcludedChildrenFromSitemapPropertyAlias " value = " anotherPropertyAlias " /> appSettings >