4

我有一个带有标签的母版页。这些选项卡由以下站点地图文件定义:

<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。我读到在链接的开头有一个波浪号可以解决这个问题,但它没有。

4

3 回答 3

13

我花了几个小时寻找这个问题的答案,结果发现有一个,这很烦人。您可以在 WSS 站点和 MOSS 站点中使用 ProjectProperty 标记,ProjectProperty 的可能参数之一为您提供子站点的 URL。

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

这会输出带有子站点 URL 值的字符串文字。因此,例如,您可以这样做(请注意,您需要对实际 HTML 标记的 src='' 或 href='' 属性使用单引号):

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

希望能帮助到你!有关 ProjectProperty 的其他可能值的列表,请查看此人的页面(这是我找到原始答案的地方!)

于 2010-07-07T20:17:40.967 回答
9

我一直在寻找一个答案来做到这一点......我想将我的网站打包为网站模板,并且绝对 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 %>" />

希望这对其他人有帮助...

于 2010-10-09T21:56:46.727 回答
2

您正在寻找 ~site 令牌,这是 WSS 自定义的 URL 令牌列表。

于 2009-10-28T05:26:25.267 回答