代码之家  ›  专栏  ›  技术社区  ›  Matt

WSS 3.0站点定义在onet.xml中包含MasterUrl时中断

  •  1
  • Matt  · 技术社区  · 16 年前

    我为WSS3.0创建了一个简单的站点定义,它使用了一个功能,该功能将母版页提供给母版页库。

    这是非常好的,一旦我根据定义创建了一个站点,我就可以进入母版页库并查看我的配置文件。

    但是,如果我在onet.xml的配置节点中设置MasterUrl,然后从中创建新站点,则会失败。单击“创建”后,它会自动将我重定向到新站点,但会显示“未找到文件”错误。因此,我键入设置页面的url并单击以查看母版页库,然后再次出现文件未找到错误。

    我不确定发生了什么,但在我看来,设置MasterUrl会阻止它创建正确的列表,该功能可以将masterpage提供给这些列表。谁能帮我解释一下这件事吗?

    以下是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>
    
    1 回复  |  直到 16 年前
        1
  •  2
  •   Colin    16 年前

    我的第一个想法是:为什么在onet.xml中?

    功能装订将创建站点时要激活的功能绑定到(自定义)站点模板。您甚至可以使用它来附加要在开箱即用站点定义上激活的功能。例如,功能绑定是在“MySite”和“My Site Host”定义中启用功能的首选方式。原始站点定义保持不变,但您的功能也已激活!

    onet.xml 在激活任何功能之前进行处理。

    如果您的网站是发布网站(意味着在网站集中激活了与发布相关的功能),则可以使用设置发布功能中的母版页 ChromeMasterUrl

    如果该站点是常规站点,您可以做两件事:

    • 从中部署母版页 <Module> 从母版页功能到 ,更多信息 here (图1)。
    • here (文章中的可下载代码)。