Ссылки на главной странице SharePoint 2010 не изменены в зависимости от сопоставлений альтернативного доступа

Мы создаем настраиваемую фирменную мастер-страницу в SharePoint 2010. Чтобы сделать страницу похожей на унаследованную страницу, мы внедрили настраиваемое выпадающее меню на основе HTML, которое мы разместили непосредственно на главной странице (состоящее из базовых элементов HTML UL и LI с Теги, стилизованные под класс CSS).

Я предполагал, что ссылки из основного HTML-кода на странице будут зависеть от существующих сопоставлений альтернативного доступа, но, похоже, это не так. На тестовой странице, открытой в 3 разных URL-адресах ( http://sharepoint2010/, http://sharepoint2010.mydomain.com/, https://sharepoint2010.mydomain.com/) ссылки со страницы WIKI изменяются, как я и ожидал, но ссылки из пользовательского меню навигации (обычный HTML на главной странице) не изменяются.

Я могу видеть, где это было бы полезно... Но есть ли способ, которым я могу добавить ссылки на MasterPage таким образом, чтобы SharePoint сначала анализировал их, делая их объектом преобразования сопоставления альтернативного доступа? Я попытался поместить ссылку в элемент управления SPLinkButton, но он не достиг желаемого поведения.

например

<ul id="navmenu">
  <li><SharePoint:SPLinkButton runat="server" NavigateUrl="http://sharepoint2010">sharepoint link</SharePoint:SPLinkButton></li>
  <li><a href="http://sharepoint2010">sharepoint2010</a></li>
  <li>test</li>
</ul>

Когда я захожу на страницу через https://sharepoint2010.mydomain.com/ вышеуказанные ссылки по-прежнему остаются http://sharepoint2010/ а не https://sharepoint2010.mydomain.com/

Какие-нибудь мысли?

Спасибо,

Виктор

РЕДАКТИРОВАТЬ (уточнить): я планировал использовать относительные ссылки в качестве запасного варианта. Но для того, что мы делаем, было бы легче поддерживать, если бы мы могли сохранить полные ссылки и использовать AAM. Я знаю, что стандартные относительные ссылки возможны. Я надеялся определить, есть ли способ использовать AAM для содержимого главной страницы (или даже для содержимого, полученного из внешних служб в будущем) путем предоставления определенного синтаксиса ссылки или структуры управления.

3 ответа

Нет необходимости повторно вставлять имя хоста, если ваши ссылки находятся в одном домене, и вы не используете управляемые пути. Сохранение относительных ссылок гарантирует, что любые привязки в настройках IIS и AAM в SharePoint будут работать без какой-либо дополнительной работы.

В противном случае я настоятельно рекомендую использовать доступные токены ~sitecollection и ~site SPUrl для получения текущего URL-адреса семейства сайтов или текущего веб-URL. Вам нужно обернуть его во все, что работает на стороне сервера, так как выражение будет обрабатываться... на стороне сервера.

например:

<asp:Literal runat="server" Text="<% $SPUrl:~site/press-releases/ %>"/>

Надеюсь, это помогло

При использовании атрибута NavigateUrl= элемента SPLinkButton SharePoint отображает простой якорь с href= вместо обычного кода JavaScript PostBack. Сопоставление альтернативного доступа здесь не играет роли.

Если это просто относительные ссылки, которые вы хотите, то вообще пропустите запись dns (т. Е. Бит URL, который вы переключаете с помощью AAM) и начинайте URL с косой черты, чтобы сделать ее относительной. Если это не соответствует вашим потребностям, то, как это делает Sharepoint, использует относительный токен URL. Найдите в v4.master символ тильды, а затем "site" или "sitecollection", которые относятся к текущей сети и семейству сайтов соответственно. Скопируйте этот метод. Для получения более подробной информации перейдите по этой ссылке: http://msdn.microsoft.com/en-us/library/ms473643.aspx