2014-01-09 3 views
3

Я недавно создал страницу aspx и aspx.cs, которая должна запускаться вместе с сайтом sitecore. Кто-нибудь знает, как я могу добавить эти страницы на сайт? Наша настройка очень странная и хотела бы знать рекомендации перед тем, как попробовать что-нибудь и рискнуть нарушить наши настройки.Как добавить пользовательскую страницу .aspx в sitecore?

+0

просто добавьте этот url в значение параметра IgnoreUrlPrefixes как | custom.aspx, это обеспечит, что эта страница не будет обработана с помощью файла разрешения sitecore. –

ответ

8

Вы не обязательно должны добавить страницу в IgnoreUrlPrefixes.
Перед выполнением ItemResolver выполняется FileResolver, который проверяет, указывает ли ваш запрос непосредственно на файл на диске.

Вам нужно настроить разрешенные расширения URL в FilterUrlExtensions процессоре preprocessRequest трубопровода, как таковой:

<preprocessRequest 
    <processor type="Sitecore.Pipelines.HttpRequest.FilterUrlExtensions, Sitecore.Kernel"> 
     <param desc="Allowed extensions (comma separated)">aspx, ashx, asmx</param> 
     <param desc="Blocked extensions (comma separated)">*</param> 
    </processor> 
</preprocessRequest> 

Так что конфигурация позволит *.aspx, *.ashx и *.asmx быть запрошены непосредственно (это по умолчанию конфигурации в Sitecore 7.0).

Если вы используете Sitecore 6.6 или ниже, то процессор FilterUrlExtensions можно найти в конвейере httpRequestBegin.

+0

Будет ли эта работа работать с страницами, которые я не хочу включать в sitecore? В основном страница просто показывает выход xml и не нуждается в том, чтобы быть включенным в фактический веб-сайт. – TheDizzle

+0

Да, вы можете просто добавить файлы в свой веб-корень, и вы должны иметь возможность просматривать их. До тех пор, пока вы включили расширение файла в конфигурацию, как я упоминаю в своем ответе. –

+0

@RuudvanFalier Это работает, только если вы помещаете файл под веб-корнем не в папку? – xoail

5

Если вы просто отбросите страницу ASPX по пути, по которому вы хотите, чтобы он находился, по умолчанию Sitecore должен позволить ему быть поданным, перейдя по соответствующему URL-адресу.

+1

Нет. Sitecore будет вызывать 404, если элемент не найден в дереве контента. Вам нужно изменить 'IgnoreUrlPrefixes' в Sitecore 6 – jammykam

+2

Неправда, Jammykam. См. Мой ответ. –

+0

Хорошо, я стою исправлен, поэтому я забираю это обратно! Хорошо знать. +1 – jammykam

0

Если вы открыли sitecore в Visual Studio, просто добавьте их в проект. Вы можете получить доступ к новой странице напрямую.

5

Просто добавьте страницы в проекты как обычно (как предлагал DustinDavis), но вам также нужно изменить IgnoreUrlPrefixes в файле web.config (или добавить файл исправления конфигурации) и включить страницы или папки в виде значений, обработчики Sitecore игнорируются.

Вы можете настроить значение атрибута из /конфигурации/Sitecore/настройки/установки элемента в web.config с именем IgnoreUrlPrefixes для предотвращения Sitecore от обработки конкретных запросов, в результате чего ASP.NET обработать запрос без Sitecore.

Sitecore Presentation Component Reference От

Существует более подробную информацию о как и почему в this blog post by Alex Ahyba

Смежные вопросы