Générer plan du site à la volée

voix
4

Je suis en train de générer un sitemap.xml à la volée pour un site Web asp.net particulier.

J'ai trouvé des solutions de couple:

  1. chinookwebs
  2. cervoproject
  3. newtonking

Chinookwebs fonctionne très bien, mais semble un peu inactif en ce moment et il est impossible de personnaliser la « priorité » et les balises « changefreq » de chaque page, ils héritent tous la même valeur à partir du fichier de configuration.

Quelles sont les solutions que vous les gars utiliser?

Créé 13/08/2008 à 01:01
source utilisateur
Dans d'autres langues...                            


3 réponses

voix
7

Habituellement , vous utilisez un gestionnaire HTTP pour cela. Compte tenu d' une demande de ...

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

... votre gestionnaire répondra avec un sitemap XML formaté. Que ce soit sitemap généré à la volée, à partir d'une base de données ou d'une autre méthode est à la mise en œuvre Handler HTTP.

Voici à peu près ce qu'il ressemblerait à ceci:

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

Ce code peut être amélioré, mais qui est l'idée de base.

Créé 13/08/2008 à 08:19
source utilisateur

voix
0

En utilisant ASP.NET MVC juste fouetté un peu rapide de code en utilisant la bibliothèque de génération XML .NET et puis juste passé que vers une page de vue qui avait un contrôle XML sur elle. Dans le code-behind j'ai attaché le contrôle avec le ViewData. Cela semblait remplacer le comportement par défaut des pages de vue de présenter un en-tête.

Créé 13/08/2008 à 02:12
source utilisateur

voix
0

gestionnaire personnalisé pour générer le plan du site.

Créé 13/08/2008 à 01:48
source utilisateur

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