Предоставляет ASP.NET HttpHandler для помощи в создании динамического файла sitemap.xml.
Существует также специальное расширение Umbraco для Sitemapify, которое поддерживает создание карты сайта из контента Umbraco CMS. См. Sitemapify.Umbraco для получения дополнительной документации.
Install-Package Sitemapify
В процессе установки необходимо обновить файл web.config, включив в него httphandler для обработки запросов к 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 >