使用 Sharepoint Foundation 2010,我编辑了 v4.master,向新的 CSS 文件添加了引用,保存了更改并将它们应用到主站点没有问题。
但是,当我创建一个子站点时,出于某些恼人的原因,它使用了旧版本的 v4.master。我隐约知道 SPS 的一些发布功能未包含在 SPF 中,因此许多在线建议并不相关(?)
如果有办法让新的子站点继承新的 V4.master,我将不胜感激。
使用 Sharepoint Foundation 2010,我编辑了 v4.master,向新的 CSS 文件添加了引用,保存了更改并将它们应用到主站点没有问题。
但是,当我创建一个子站点时,出于某些恼人的原因,它使用了旧版本的 v4.master。我隐约知道 SPS 的一些发布功能未包含在 SPF 中,因此许多在线建议并不相关(?)
如果有办法让新的子站点继承新的 V4.master,我将不胜感激。
这仅适用于自定义 WSP 或 HttpModule,两者都需要 .NET 代码。服务器版本的 SharePoint 使用 Masterpage 选项轻松处理此问题,在谷歌上快速搜索“基础母版页解决方案”得到了很好的结果,包括:
我通过 Visual Studio 和 SharePoint 站点定义创建新的自定义站点定义解决了这个问题。我添加了一项功能,将我的自定义母版页(从 v4.master 编辑)添加到网站集的母版页库(_catalogs/masterpage)中:
<Module Name="MasterPageModule" RootWebOnly="FALSE" List="116" Url="_catalogs/masterpage" >
<File Url="mymasterpage.master" Path="MasterPageModule\mymasterpage.master" IgnoreIfAlreadyExists="TRUE" Type="GhostableInLibrary">
<Property Name="ContentTypeId" Value="0x010105"/>
</File>
为所有站点获取相同母版页的主要方法是在 Default.aspx 中设置 MasterPageFile -property,如下所示: MasterPageFile="~sitecollection/_catalogs/masterpage/mymasterpage.master" - 这始终是指 rootsitecollection 级别。
我认为可以通过使用 FeatureActivated-method 来实现同样的事情,但它在我的情况下不起作用,不知道为什么。
这可能为时已晚,无法使您受益,但也许会使其他人受益。我发现如果您不将自定义母版页重命名为 v4.master 以外的其他名称,那么子站点将不会继承 v4.master 的自定义版本,而是使用原始未自定义的 v4.master。因此,请确保您制作了 v4.master 的副本并重命名它。以下是 [我的博客文章] 中的一些步骤,这就是我的做法:
如果您希望网站集根目录中的母版页能够被子网站继承,那么您最好使用发布网站模板。
然后您可以转到:/_Layouts/ChangeSiteMasterPage.aspx 并指定您的自定义母版页,并让所有子网站继承它。