4

使用 Sharepoint Foundation 2010,我编辑了 v4.master,向新的 CSS 文件添加了引用,保存了更改并将它们应用到主站点没有问题。

但是,当我创建一个子站点时,出于某些恼人的原因,它使用了旧版本的 v4.master。我隐约知道 SPS 的一些发布功能未包含在 SPF 中,因此许多在线建议并不相关(?)

如果有办法让新的子站点继承新的 V4.master,我将不胜感激。

4

4 回答 4

2

这仅适用于自定义 WSP 或 HttpModule,两者都需要 .NET 代码。服务器版本的 SharePoint 使用 Masterpage 选项轻松处理此问题,在谷歌上快速搜索“基础母版页解决方案”得到了很好的结果,包括:

http://blog.thedesigndrifter.com/?p=1112

http://rickhilferink.wordpress.com/2011/01/25/creating-a-sharepoint-2010-foundation-masterpage-solution-and-automatically-activate-it-for-all-sites-and-newly-created-子网站/

于 2011-08-05T02:15:19.393 回答
0

我通过 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 来实现同样的事情,但它在我的情况下不起作用,不知道为什么。

于 2012-01-11T06:54:41.210 回答
0

这可能为时已晚,无法使您受益,但也许会使其他人受益。我发现如果您不将自定义母版页重命名为 v4.master 以外的其他名称,那么子站点将不会继承 v4.master 的自定义版本,而是使用原始未自定义的 v4.master。因此,请确保您制作了 v4.master 的副本并重命名它。以下是 [我的博客文章] 中的一些步骤,这就是我的做法:

  1. 右键单击 v4.master 并选择“重置为站点定义”,原始的 v4.master 将被恢复,SPD 2010 将自动创建一个 v4_copy(1).master 页面(屏幕截图 14)。
  2. 签入custom.master,发布主要版本,并批准文件
  3. 转到站点操作 > 站点设置 > 母版页并为站点母版页和系统母版页选择新的母版页 custom.master,然后选中“重置所有子站点以继承此备用 CSS URL”复选框(屏幕截图 15 )
  4. 现在,如果您忘记使用 Team Site 模板为您的新子站点激活发布功能,它将不会继承 custom.master 页面,因此请转到“站点操作”>“站点设置”>“管理站点功能”并激活发布功能(屏幕截图16)
  5. 激活该功能后,您应该会看到新的母版页及其样式(屏幕截图 17)
于 2011-07-07T21:14:25.200 回答
0

如果您希望网站集根目录中的母版页能够被子网站继承,那么您最好使用发布网站模板。

然后您可以转到:/_Layouts/ChangeSiteMasterPage.aspx 并指定您的自定义母版页,并让所有子网站继承它。

于 2010-11-16T01:57:27.557 回答