【问题标题】:How do I force a new site collection to inherit a master page?如何强制新网站集继承母版页?
【发布时间】:2010-10-04 00:32:26
【问题描述】:
我有一些在 SharePoint 中创建新网站的代码。浏览到新创建的站点时,会引发 File Not Found 错误。如果您浏览到 /_layouts/ChangeSiteMasterPage.aspx,您可以选择一个新的站点母版和系统母版页,并且该站点可以正常工作。这篇 kb 文章完美地描述了我的症状:http://support.microsoft.com/kb/936908
我的问题是在给出的两个(也许三个?)解决方案中,只有一个有效。如果我手动选择新的母版页,它工作正常。第二种解决方法是在新站点上激活发布功能。这并不能解决任何问题。
还有一个建议是将发布功能装订到我用于新网站的网站定义中。就我而言,这是 STS#1(空白站点),装订发布功能并不能缓解我的问题。
有人知道如何整理出正确的母版页吗?
【问题讨论】:
标签:
sharepoint
master-pages
wss
【解决方案1】:
我们通过委托控制来做到这一点。在 OnLoad 我们调用如下方法:
private void ConfigureMasterPage(SPWeb web)
{
string masterURL = string.Empty;
masterURL = web.Site.ServerRelativeUrl + "/_catalogs/masterpage/XXX.master";
masterURL = masterURL.Replace("//", "/");
web.MasterUrl = masterURL;
web.CustomMasterUrl = masterURL;
web.Update();
}
不要忘记处理 SPSite 和 SPWeb 对象,您必须将 AllowUnsafeUpdates 设置为 true。
希望对你有帮助
【解决方案2】:
原来我只需要在其中一个生成的站点中更改主模板,然后将其保存为模板。我删除了损坏的模板并将其放置在它的位置。现在所有生成的网站都可以正常工作了。