我们正在SharePoint 2010中创建自定义品牌母版页。为了使页面类似于旧版页面,我们实现了一个基于html的自定义下拉菜单导航菜单,我们直接在母版页上使用(由基本HTML元素UL组成)和带有A标签的LIs用CSS类设置。)
我认为页面上基本HTML的链接将受到当前替代访问映射的限制,但似乎并非如此。在以3个不同网址(http://sharepoint2010,http://sharepoint2010.mydomain.com,https://sharepoint2010.mydomain.com打开的测试页上,来自WIKI页面的链接会按照我的预期进行修改,但是来自自定义导航菜单的链接(平面)主页上的HTML不会被修改。
我可以看到哪些内容很有用......但是有没有办法可以在SharePoint上首先解析它们的方式在MasterPage上添加链接,使它们受到备用访问映射转换的影响?我尝试在SPLinkButton控件中放置一个链接,但它没有达到预期的行为。
e.g。
<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(甚至可以使用从外部服务中获取的内容)。
答案 0 :(得分:2)
如果您的链接位于同一个域且未使用托管路径,则无需重新插入主机名。保持链接相对性将确保SharePoint中的任何绑定和AAM设置都可以在没有任何额外工作的情况下工作。
否则,我会建议使用可用的~sitecollection和〜site SPUrl令牌来检索当前网站集URL或当前网址。您需要将它包装在运行服务器端的任何内容中,因为表达式将被处理...服务器端。
例如:
<asp:Literal runat="server" Text="<% $SPUrl:~site/press-releases/ %>"/>
希望有所帮助
答案 1 :(得分:1)
当您使用SPLinkButton的NavigateUrl =属性时,SharePoint会使用href =而不是常规的PostBack JavaScript代码呈现一个简单的锚点。备用访问映射在这里不起作用。
答案 2 :(得分:1)
如果它只是你想要的相对链接,那么完全省略dns条目(即你用你的AAM切换的url的位)并用正斜杠开始url以使其相对。如果这不符合您的需求,Sharepoint的方式是使用相对URL令牌。在v4.master中查看tilda字符,然后是“site”或“sitecollection”,它们分别引用当前的Web和网站集。复制此方法。有关详细信息,请查看以下链接:http://msdn.microsoft.com/en-us/library/ms473643.aspx