2009-10-28 59 views
3

我有一个带有选项卡的主页面。该选项卡由下列网站地图文件中定义:Sharepoint主页面中的相对URL

<siteMap> 
    <siteMapNode title="Home" url="~/" > 
     <siteMapNode title="Schedule" url="~/Pages/Tab2.aspx"/>  
     <siteMapNode title="Deliverables" url="~/Pages/Tab3.aspx"/> 
     <siteMapNode title="My Items" url="~/Pages/Tab4.aspx"/> 
     <siteMapNode title="Management" url="~/Pages/Tab5.aspx"/> 
     <siteMapNode title="Working Docs" url="~/Pages/Tab6.aspx"/> 
    </siteMapNode> 
</siteMap> 

的问题是,在我的子网站,点击标签上不断带我回到了根。例如,我希望计划链接转到http://Server/Subsite/Pages/Tab2.aspx。相反,我得到的是http://Server/Pages/Tab2.aspx。我读过在链接开头有一个波浪号可以解决这个问题,但事实并非如此。

回答

1

您正在寻找的网站〜令牌,here's a list of the URL tokens custom to WSS.

+1

〜网站不是为我工作。链接变为http://Server/~site/Pages/Tab2.aspx。 也许这不起作用的网站地图文件? – 2009-10-28 16:35:16

+0

嗯,我发布的令牌替换是在一个SharePoint HTTPHandlers中完成的,这意味着它应该可以在网站地图中工作,但在查看此SO帖子之后:http://stackoverflow.com/questions/ 337781 /创建自定义url-token-in-asp-net-a-la-moss它看起来令牌实际上在其他地方被解析。无论〜标记总是相对于Web应用程序根目录,而不是SharePoint中的当前网站/网站集。您可能需要实施自己的网站地图提供商才能获得您真正需要的功能,对于误导性答案感到抱歉。 – 2009-10-28 18:23:32

11

我花了几个小时寻找这个问题的答案,它原来有一个,它只是恼人。您可以在WSS站点和MOSS站点中使用ProjectProperty标记,并且ProjectProperty的其中一个可能参数为您提供子站点的URL。

<SharePoint:ProjectProperty Property="Url" runat="server"/> 

输出字符串字面值与子网站的值。因此,举例来说,你可以这样做(请注意,你需要使用单引号中的src =“”或HREF =“”实际的HTML标签的属性):

<a href='<SharePoint:ProjectProperty Property="Url" runat="server"/>/pages/Tab2.aspx'> 

希望它能帮助!有关ProjectProperty的其他可能值的列表,请查看this guy's page(这是我找到我的原始答案的地方!)

+0

非常好!像魅力工作 – 2010-12-09 12:14:57

7

我一直在寻找一个答案来做这个很长一段时间......我想打包我的网站作为网站模板,并且绝对URL不是一个选项......我需要它们与网站URL是相关的......无论它是MOSS的根源还是深层次的子网站。 ..

我发现了以下工作:

脚本标签:

<script type="text/javascript" src='<asp:Literal runat="server" 
       Text="<% $SPUrl:~Site/appBin/js/jquery.min.js %>" />'></script> 

样式表(方法由user385947以上建议):

<link rel="stylesheet" type="text/css" 
     href="<% $SPUrl:~Site/appBin/css/jquery-ui.css %>" /> 

希望这会帮助别人......

+0

这是为我工作的解决方案 – 2011-06-23 16:19:16

+0

为我工作。有趣的是,对于样式表而言,它不需要''。对于'