Genererer sitemap på fly

stemmer
4

Jeg prøver å generere en sitemap.xml på fly for en bestemt asp.net nettside.

Jeg fant et par løsninger:

  1. chinookwebs
  2. cervoproject
  3. newtonking

Chinookwebs fungerer bra, men virker litt inaktiv akkurat nå, og det er umulig å tilpasse priority og changefreq tags til hver side, de arver den samme verdien fra konfigurasjonsfilen.

Hvilke løsninger bruker dere det?

Publisert på 13/08/2008 klokken 00:01
kilden bruker
På andre språk...                            


3 svar

stemmer
7

Vanligvis vil du bruke en HTTP Handler for dette. Gitt en forespørsel om ...

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

... din behandleren vil svare med en formatert XML sitemap. Enten det sitemap genereres på fly, fra en database, eller en annen metode er opp til HTTP Handler gjennomføring.

Her er omtrent hva det vil se ut:

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();
}

Denne koden kan bli bedre, men det er den grunnleggende ideen.

Svarte 13/08/2008 kl. 07:19
kilden bruker

stemmer
0

Ved hjelp av ASP.NET MVC bare pisket opp en rask bit av koden ved hjelp av .NET XML generasjon bibliotek og så bare gikk det til en visning siden som hadde en XML-kontroll på den. I kode bak bandt jeg kontrollen med teledata. Dette syntes å overstyre standardvirkemåten vis sider å presentere en annen spissen.

Svarte 13/08/2008 kl. 01:12
kilden bruker

stemmer
0

Custom håndterer å generere sitemap.

Svarte 13/08/2008 kl. 00:48
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more