سؤال

أحاول إنشاء ملف sitemap.xml سريعًا لموقع ويب asp.net معين.

لقد وجدت حلين:

  1. com.chinookwebs
  2. cervoproject
  3. newtonking

تعمل Chinookwebs بشكل رائع ولكنها تبدو غير نشطة بعض الشيء في الوقت الحالي ومن المستحيل تخصيص علامات "الأولوية" و"changefreq" لكل صفحة، فكلها ترث نفس القيمة من ملف التكوين.

ما هي الحلول التي تستخدمونها يا رفاق؟

هل كانت مفيدة؟

المحلول

عادة سوف تستخدم معالج HTTP لهذا.نظرا لطلب...

http://www.yoursite.com/sitemap.axd

...سوف يستجيب المعالج الخاص بك بخريطة موقع XML منسقة.سواء تم إنشاء خريطة الموقع هذه بشكل سريع، أو من قاعدة بيانات، أو من طريقة أخرى، فإن الأمر متروك لتطبيق HTTP Handler.

إليك ما سيبدو عليه تقريبًا:

void IHttpHandler.ProcessRequest(HttpContext context)
{
    //
    // Important to return qualified XML (text/xml) for sitemaps
    //
    context.Response.ClearHeaders();
    context.Response.ClearContent();
    context.Response.ContentType = "text/xml";
    //
    // Create an XML writer
    //
    XmlTextWriter writer = new XmlTextWriter(context.Response.Output);
    writer.WriteStartDocument();
    writer.WriteStartElement("urlset", "http://www.sitemaps.org/schemas/sitemap/0.9");
    //
    // Now add entries for individual pages..
    //
    writer.WriteStartElement("url");
    writer.WriteElementString("loc", "http://www.codingthewheel.com");
    // use W3 date format..
    writer.WriteElementString("lastmod", postDate.ToString("yyyy-MM-dd"));
    writer.WriteElementString("changefreq", "daily");
    writer.WriteElementString("priority", "1.0");
    writer.WriteEndElement();
    //
    // Close everything out and go home.
    //
    result.WriteEndElement();
    result.WriteEndDocument();
    writer.Flush();
}

يمكن تحسين هذا الكود ولكن هذه هي الفكرة الأساسية.

نصائح أخرى

معالج مخصص لإنشاء خريطة الموقع.

باستخدام ASP.NET MVC، تم إنشاء جزء سريع من التعليمات البرمجية باستخدام مكتبة إنشاء .NET XML ثم تمرير ذلك إلى صفحة عرض تحتوي على عنصر تحكم XML عليها.في الكود الخلفي قمت بربط عنصر التحكم بـ ViewData.يبدو أن هذا يتجاوز السلوك الافتراضي لصفحات العرض لتقديم رأس مختلف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top