我为WSS 3.0创建了一个使用功能的简单网站定义,此功能将主页面设置到母版库中。
这非常正常,一旦我从定义中创建了一个网站,我就可以进入母版库并查看我的配置文件。
但是,如果我在onet.xml的Configuration节点中设置MasterUrl然后从中创建一个新站点,则会失败。单击“创建”后,它会自动将我重定向到新站点,但会向我显示“找不到文件”错误。所以我输入设置页面的网址,然后点击查看母版库,然后再次找到一个文件未找到错误。
我不确定发生了什么,但在我看来,设置MasterUrl会阻止它创建功能可以配置母版页的正确列表。有人可以帮我解决这件事吗?
这是webtemp * .xml:
<?xml version="1.0" encoding="utf-8"?>
<Templates>
<Template Name="MasterPageTest" ID="10902">
<Configuration ID="0"
Title="MasterPageTest"
Description="Testing master page deployment"
Hidden="FALSE"
ImageUrl="/_layouts/images/stsprev.png"
DisplayCategory="Test"
/>
</Template>
</Templates>
onet.xml(删除了masterurl属性):
<?xml version="1.0"?>
<Project Title="MasterPageTest" Revision="3" ListDir="$Resources:core,lists_Folder;" xmlns:ows="Microsoft SharePoint" xmlns="http://schemas.microsoft.com/sharepoint/">
<!-- _locID@Title="camlidonet1" _locComment="{StringCategory=HTX}" -->
<NavBars>
</NavBars>
<ListTemplates>
</ListTemplates>
<DocumentTemplates>
</DocumentTemplates>
<Configurations>
<Configuration ID="0"
Description="Testing master page deployment"
Title="Master Page Test"
Name="MasterPageTest"
>
<!-- MasterUrl="_catalogs/masterpage/MasterPage.master" -->
<Lists>
</Lists>
<Modules>
</Modules>
<SiteFeatures>
</SiteFeatures>
<WebFeatures>
<!-- Masterpage -->
<Feature ID="8175B375-38F5-44E2-950A-9600D5427E17"/>
</WebFeatures>
</Configuration>
</Configurations>
<Modules>
</Modules>
<ServerEmailFooter>$Resources:ServerEmailFooter;</ServerEmailFooter>
</Project>
答案 0 :(得分:2)
我的第一个想法是:为什么在onet.xml中?
我通常使用名为功能装订的过程来执行此操作。以后无法删除/禁用从网站定义创建的功能(当然,您可以手动执行,或者使用功能+接收器删除对于从onet.xml创建的特定网站不需要的列表,但是你可能得到了重点)。
通过使用功能装订,(您的/)网站定义保持干净并保持原样:网站定义,可在网站创建期间选择。恕我直言,它应该只是一个空容器。
功能装订将您在网站创建时要激活的功能绑定到(自定义)siteTEMPLATE。您甚至可以使用它来附加您想要激活的功能,也可以使用现成的网站定义。例如,功能装订是在“MySite”和“我的站点主机”定义中启用功能的首选方式。原始sitedefintion保持不变,但您的功能也已激活!
现在实际回答您的问题:使用网站定义时,母版页可能尚未提供,在激活任何功能之前处理onet.xml
。
如果您的站点是发布站点(意味着在网站集中激活了与发布相关的功能),则可以使用ChromeMasterUrl
属性在发布功能中设置母版页。
如果网站是常规网站,您可以做两件事: