自定义“新式”团队网站

2016 年,SharePoint Online 团队发布了“新式”协作网站。 此类“新式”团队网站与 Microsoft 365 组集成,大大提升了最终用户体验。 “新式”团队网站旨在提供响应式用户体验,让最终用户可以更快速地创建和使用此类网站。 下面介绍了“新式”团队网站的一些主要优势:

  • 旨在针对任意设备进行原生缩放,无需使用自定义,即可提供完全响应式用户体验。
  • 包含原生新闻、快速链接和活动功能。
  • 与 Microsoft 365 组集成。
  • 相比“经典”团队网站,网站创建速度明显加快。
  • 包括支持 Microsoft Flow 和 PowerApps 的“新式”列表和库。
  • 包括“新式”页面编辑功能。
  • 包括更新后的网站内容页,提供更多有关网站使用情况的见解数据。

本文重点介绍了“新式”团队网站中的可用扩展选项:

重要

我们不会弃用“经典”体验;“经典”和“新式”体验将同时共存。

“新式”团队网站支持的自定义

相比“经典”团队网站,“新式”团队网站具有不同级别的自定义选项。 随着时间的推移,我们将引入更多的自定义选项,主要以可扩展性和品牌塑造为重点。 下面的列表简单概述了“新式”团队网站支持的功能: 可以执行下列操作:

  • 使用 SharePoint 框架修改网站中的用户体验,具体方法是提供客户端 Web 部件,或将其他用户界面元素随 SharePoint 框架扩展一起添加。
  • 应用自定义主题或更改徽标。
  • 应用现成主题。
  • 创建自定义网站列(字段)和内容类型。
  • 创建列表和库。
  • 配置网站设置(如区域设置、语言和审核设置)。

注意

默认情况下,“新式”团队网站已禁用脚本功能。 仍可以应用自定义主题,但不能将自定义主题作为最终用户选项引入主题库。 若要将主题添加到主题库,需要在网站上启用脚本

“新式”团队网站不支持什么功能?

“新式”团队网站中有许多位置目前尚不支持典型自定义。 我们将会在这些选项可供发布时,就其中一些特定主题提供进一步技术支持。 下面列出了“新式”团队网站当前不支持的自定义:

  • 自定义母版页;今后将支持使用备用选项开展更详尽的品牌塑造。
  • 将“新式”网站更改为使用“经典”的 seattle.master 或 oslo.master。
  • 自定义页面布局;希望将来可以支持多个画布。
  • 启用网站或网站集范围内发布功能;从技术角度来讲,目前虽可以激活功能,但配置不受支持。
  • 用户自定义操作/自定义 JavaScript;将能更好地控制通过 SharePoint 框架扩展在页面上嵌入 JavaScript 的过程。
  • “新式”子网站;虽然在“新式”团队网站中创建的子网站采用“经典”体验,但可将其更改为提供与“新式”网站相似的用户体验。
  • 能够控制可用的子网站模板选项。
  • 激活社区功能或在“新式”团队网站下创建社区子网站。
  • 将网站另存为模板。 也不支持网站集中的子站点,即根站点是与团队网站或通信网站关联的组。
  • 以编程方式更新导航元素。

由于“新式”团队网站同样禁用了脚本功能(即所谓的“NoScript”网站),因此很多位置无法自定义。 对“新式”或“经典”网站而言,“NoScript”的影响是相同的。 “新式”网站默认启用“NoScript”,这意味着脚本功能不可用。 然而,可以并支持在“新式”和“经典”网站中禁用“NoScript”设置,以进一步实现某些功能。

设计解決方案时,请考虑与 NoScript 设置相关的关键方面:

  • 不支持沙盒解决方案。
  • 不能使用“经典”扩展选项(例如,通过用户自定义操作)在网站中启用自定义 JavaScript。
  • 不能使用 SharePoint Designer 访问网站。
  • 最终用户无法使用一些 Web 部件。
  • 可以访问或更新网站属性包条目。

注意

可以在 Microsoft 支持文章允许或阻止自定义脚本中的“阻止自定义脚本时受影响的功能”部分下,查看受影响功能的完整列表。

结合使用 PnP 预配引擎和“新式”团队网站

可以结合使用 PnP 预配引擎和“新式”团队网站。 PnP 预配引擎会自动检测网站是否是“新式”团队网站,并会根据支持的功能调整其行为。 具体过程与结合使用 PnP 预配引擎和未禁用脚本功能的“经典”网站的过程完全相同。

将远程模板应用于“新式”团队网站或已启用 NoScript 的网站时,以下元素会遭忽略。

  • 审核设置中的网站集 AuditLogTrimmingRetention 配置
  • 应用模板中的自定义主题;当前实现依赖于将自定义主题存储到目录中,但这并不受支持
  • 内容类型的表单设置
  • 将自定义用户操作添加到网站、Web 或列表一级
  • 添加文件类型为“.asmx”、“.ascx”、“.aspx”、“.htc”、“.jar”、“.master”、“.swf”、“.xap”、“.xsf”的文件
  • 将文件添加到 URL 如下的库:"_catalogs/theme""style library""_catalogs/lt""_catalogs/wp"
  • 将 Web 部件添加到网站页面
  • 将预配模板信息存储到已预配网站的属性包中
  • 将属性包条目添加或更新到网站属性包中
  • “经典”发布设置和资产
  • 网站“无爬网”设置
  • 网站母版页设置

将自定义主题应用到“新式”团队网站

注意

以下方法是在租户主题之前编写的,可了解“新式”主题设置的新方式 阅读SharePoint 网站主题

“新式”团队网站支持自定义主题,尽管无法为最终用户上载新的库条目。 具体实现方法为,将所需的资产上传到网站,再执行 ApplyTheme 方法。 以下 PowerShell 脚本展示了如何对“新式”团队网站执行此操作。


# Connect to a previously created Modern Site
Connect-PnPOnline https://[tenant].sharepoint.com/sites/siteurl -UseWebLogin

# Apply a custom theme to a Modern Site

# First, upload the theme assets
Add-PnPFile -Path .\sppnp.spcolor -Folder SiteAssets
Add-PnPFile -Path .\sppnp-bg.png -Folder SiteAssets

# Second, apply the theme assets to the site
Set-PnPTheme -ColorPaletteUrl "SiteAssets/sppnp.spcolor" -BackgroundImageUrl "SiteAssets/sppnp-bg.png" -ResetSubwebsToInherit


应用了自定义主题的“新式”团队网站

应用了自定义主题的“新式”团队网站

注意

  • 可以使用组 Graph API(如 SharePoint PnP UpdateUnifiedGroup 方法所示),更改“新式”团队网站的徽标。
  • 将自定义主题应用到“新式”团队网站可能会导致超时。 此问题的解决方法是在应用主题前禁用网站的所有可用用户界面语言,后来再重新启用这些语言。

判断网站是否是“新式”团队网站

可以检查网站的“Web.WebTemplate”值,检测网站是否是“新式”团队网站。 “新式”团队网站使用的是“组”模板。 由于与禁用脚本的“经典”团队网站支持的功能相同,因此应在代码中同时查看二者的设置,从而确定正确的行为或支持的功能。

由于没有可检测是否已启用脚本的直接属性,因此可以使用权限来确定当前状态。 如果脚本已启用,网站的基本权限中没有 AddAndCustomizePages 权限。

/// <summary>
/// Can be used to check if site has noscript enabled.
/// </summary>
/// <param name="web">site object to inspect</param>
/// <returns>True if no scripting is enabled, False if it's not</returns>
public static bool IsNoScriptSite(Web web)
{
    // Ensure that we have the needed properties - Notice that these are 
    // PnP CSOM extension capabilities
    web.EnsureProperties(w => w.WebTemplate, w => w.EffectiveBasePermissions);

    // Definition of no-script is not having the AddAndCustomizePages permission
    if (!web.EffectiveBasePermissions.Has(PermissionKind.AddAndCustomizePages))
    {
        return true;
    }

    // It's a site without noscript enabled
    return false;
}

其他注意事项

我们将逐渐引入更多“新式”团队网站自定义选项,这些选项将与发布的其他 SharePoint 框架功能保持一致。 虽然暂无确切计划,但只要有新功能发布,我们便会更新“新式”体验文章。

另请参阅