结合使用 Office 365 内容分发网络和 SharePoint Online
可以使用内置的 Office 365 内容分发网络 (CDN) 来托管静态资产,以便提高 SharePoint Online 页面的性能。 Office 365 CDN 将静态资产缓存到距离请求这些资产的浏览器更近的位置,这样可以加快下载速度并减少延迟,进而提高性能。 此外,Office 365 CDN 使用 HTTP/2 协议来改进压缩和 HTTP 管道。 Office 365 CDN 服务被归入 SharePoint Online 订阅。
注意
Office 365 CDN 仅适用于全球 ) 云的生产 (租户。 美国政府云和中国云中的租户当前不支持 Office 365 CDN。
Office 365 CDN 由多个 CDN 组成,用户可以在多个位置(即源)托管静态资产,并从全局高速网络提供这些资产。 根据要在 Office 365 CDN 中托管的内容类型(例如),可以添加公共源。
如果已经熟悉 CDN 的工作方式,只需完成几个步骤即可为租户启用Office 365 CDN。 本文将介绍其操作方法。 请继续阅读,了解如何开始托管静态资产。
提示
还有其他Microsoft托管的 CDN 可用于专用使用方案的 Office 365,但本文未讨论,因为它们不在Office 365 CDN 的范围内。 有关详细信息,请参阅 其他Microsoft CDN。
在 SharePoint Online 中使用 Office 365 CDN 的概述
若要为组织设置Office 365 CDN,请执行以下基本步骤:
-
- 确定要在 CDN 上托管的静态资产。
- 确定要存储资产的位置。 此位置可以是 SharePoint 网站、库或文件夹,称为 源。
使用 PowerShell 或 CLI 为 Microsoft 365 设置和配置 CDN
完成此步骤后,将得到以下结果:
- 已为组织启用 CDN。
完成设置后,可以通过以下方式在一段时间内管理Office 365 CDN:
- 添加、更新和删除资产
- 添加和删除源
- 配置 CDN 策略
- 如有必要,请禁用 CDN
最后,请参阅 使用 CDN 资产 ,了解如何从公共源和专用源访问 CDN 资产。
有关解决常见问题的指导,请参阅排查Office 365 CDN。
规划Office 365 CDN 的部署
在为Office 365租户部署Office 365 CDN 之前,应考虑以下因素作为规划过程的一部分。
确定要在 CDN 上托管的静态资产
通常,CDN 对于托管 静态资产或不经常更改的资产最为有效。 一个很好的经验法则是识别满足以下部分或全部条件的文件:
- 嵌入在页面中的静态文件 (,例如脚本和图像) ,这可能对页面加载时间产生重大影响。
- 可执行文件和安装文件等大型文件。
- 支持客户端代码的资源库。
例如,将重复请求的小文件 (网站图像和脚本) 添加到 CDN 源可以显著提高网站呈现性能,并逐步减少 SharePoint Online 网站上的负载。 可以从 CDN 下载更大的文件 (安装可执行文件) ,从而提供积极的性能效果,并随后减少 SharePoint Online 网站上的负载,即使它们不经常被访问也是如此。
每个文件的性能改进取决于许多因素,包括客户端与最近的 CDN 终结点的邻近性、本地网络上的暂时性条件等。 许多静态文件很小,可以在不到一秒内从Office 365下载。 但是,网页可能包含许多嵌入式文件,其累积下载时间为几秒。 从 CDN 中提供这些文件可以显著缩短总体页面加载时间。 有关示例 ,请参阅 CDN 提供哪些性能提升? 。
确定要存储资产的位置
CDN 从称为源的位置获取你的资产。 源可以是可通过 URL 访问的 SharePoint 网站、文档库或文件夹。 为组织指定源时,可以非常灵活。 例如,可以指定要在其中放置所有 CDN 资产的多个源或单个源。
可以为源(如文件夹或文档库)创建新容器,并添加要从 CDN 提供的文件。 对于想要从 CDN 获取的特定资产集,这是一种很好的方法,并且你希望将 CDN 资产集限制为仅容器中的那些文件。
还可以将现有网站集、网站、库或文件夹配置为源,使容器中的所有合格资产都可以从 CDN 中使用。 在添加现有容器作为源之前,请务必确保了解其内容和权限,以免无意中向匿名访问或未经授权的用户公开资产。
可以定义 CDN 策略 ,以从 CDN 中排除源中的内容。 CDN 策略按 文件类型 和 网站分类等属性排除公共源中的资产,并应用于在策略中指定的专用或公共) (CdnType 的所有源。 例如,如果添加由包含多个子网站的站点组成的源,则可以定义一个策略来排除标记为 机密 的网站,以便不会从 CDN 中提供应用了该分类的网站中的内容。 该策略适用于添加到 CDN 的所有 源中的内容。
请记住,源数量越大,对 CDN 服务处理请求所花费时间的影响越大。 建议尽量限制源的数量。
在公共源中托管资产的属性和优势
每个人都能匿名访问公用源中公开的资产。
重要
切勿将包含用户信息或被视为对组织敏感的资源置于公共来源中。
如果从公共源中删除资产,该资产可能从缓存中继续可用长达 30 天;但是,我们会在 15 分钟内使指向 CDN 中的资产的链接失效。
如果将样式表(CSS 文件)托管到公用源,可以在代码内使用相对路径和 URI。 此结果意味着可以引用背景图像和其他对象相对于调用它的资产的位置。
虽然可以构造公共源的 URL,但应谨慎继续作,使用页面上下文属性,并按照作指南进行作。 如果无法访问 CDN,则 URL 不会自动解析到 SharePoint Online 中的组织,并可能导致链接断开和其他错误。 URL 也可能会更改,因此不应将其硬编码为当前值。
公共源包含的默认文件类型为:
.css
、、、.eot
、.gif
、.js
.jpeg
.png
.jpg
.ico
.map
、.svg
、、.ttf
和 。.woff
.woff2
可以指定其他文件类型。可以将策略配置为基于指定的网站分类排除资产。 例如,可以排除标记为“机密”或“受限”的所有资产,即使它们是允许的文件类型并且位于公共源中。
默认 CDN 源
除非另行指定,否则Office 365启用 Office 365 CDN 时为你设置一些默认源。 如果最初选择不预配源,可以在完成设置后添加这些源。 除非你了解跳过默认源设置的后果,并且有这样做的具体原因,否则应在启用 CDN 时允许创建它们。
默认公共 CDN 源:
- */masterpage
- */样式库
- */clientsideassets
注意
clientsideassets 是 2017 年 12 月添加到 Office 365 CDN 服务的默认公共源。 必须存在此源,才能使 CDN 中的SharePoint 框架解决方案正常工作。 如果在 2017 年 12 月之前启用了 Office 365 CDN,或者如果在启用 CDN 时跳过了默认源的设置,则可以手动添加此源。 有关详细信息,请参阅我的客户端 Web 部件或SharePoint 框架解决方案不起作用。
使用 SharePoint Online 命令行管理程序 设置和配置 Office 365 CDN
本部分中的过程要求使用SharePoint Online 命令行管理程序连接到 SharePoint Online。 有关说明,请参阅Connect to SharePoint Online PowerShell。
完成这些步骤,使用 SharePoint Online 命令行管理程序设置和配置 CDN 以在 SharePoint Online 中托管资产。
选择展开
使组织能够使用 Office 365 CDN
在对租户 CDN 设置进行更改之前,应检索Office 365租户中 CDN 配置的当前状态。 使用 SharePoint Online 命令行管理程序连接到租户:
Connect-SPOService -Url https://contoso-admin.sharepoint.com
现在,使用 Get-SPOTenantCdnEnabled cmdlet 从租户中检索 CDN 状态设置:
Get-SPOTenantCdnEnabled -CdnType Public
屏幕上会显示指定 CdnType 的 CDN 状态。
使用 Set-SPOTenantCdnEnabled cmdlet 使组织能够使用 Office 365 CDN。 可以让组织使用公共源。 还可以将 CDN 配置为在启用时跳过默认源的设置。 稍后可以随时添加这些源,如本文所述。
在 sharePoint Online Windows PowerShell中:
Set-SPOTenantCdnEnabled -CdnType Public -Enable $true
若要使组织能够使用公共源,但跳过设置默认源,请键入以下命令:
Set-SPOTenantCdnEnabled -CdnType Public -Enable $true -NoDefaultOrigins
有关启用Office 365 CDN 时默认预配的源的信息,以及跳过默认源设置的潜在影响,请参阅默认 CDN 源。
若要使组织能够使用公共源,请键入以下命令:
Set-SPOTenantCdnEnabled -CdnType Public -Enable $true
有关此 cmdlet 的详细信息,请参阅 Set-SPOTenantCdnEnabled。
更改要包含在 Office 365 CDN 中的文件类型列表 (可选)
提示
使用 Set-SPOTenantCdnPolicy cmdlet 定义文件类型时,将覆盖当前定义的列表。 如果要将其他文件类型添加到列表中,请先使用 cmdlet 了解已允许的文件类型,并将其与新文件类型一起包含在列表中。
使用 Set-SPOTenantCdnPolicy cmdlet 定义可由 CDN 中的公共源托管的静态文件类型。 默认情况下,允许使用常见资产类型,例如.css、.gif、.jpg 和 .js。
在 sharePoint Online Windows PowerShell中:
Set-SPOTenantCdnPolicy -CdnType <Public> -PolicyType IncludeFileExtensions -PolicyValue "<Comma-separated list of file types >"
例如,若要启用 CDN 以托管.css和 .png 文件,请输入 命令:
Set-SPOTenantCdnPolicy -CdnType Public -PolicyType IncludeFileExtensions -PolicyValue "CSS,PNG"
若要查看 CDN 当前允许的文件类型,请使用 Get-SPOTenantCdnPolicies cmdlet:
Get-SPOTenantCdnPolicies -CdnType <Public>
有关这些 cmdlet 的详细信息,请参阅 Set-SPOTenantCdnPolicy 和 Get-SPOTenantCdnPolicies。
更改要从 Office 365 CDN 中排除的网站分类列表 (可选)
提示
使用 Set-SPOTenantCdnPolicy cmdlet 排除网站分类时,将覆盖当前定义的列表。 如果要排除更多网站分类,请先使用 cmdlet 了解哪些分类已被排除,然后将其与新分类一起添加。
使用 Set-SPOTenantCdnPolicy cmdlet 排除不希望通过 CDN 提供的网站分类。 默认情况下,不排除任何网站分类。
在 sharePoint Online Windows PowerShell中:
Set-SPOTenantCdnPolicy -CdnType <Public> -PolicyType ExcludeRestrictedSiteClassifications -PolicyValue "<Comma-separated list of site classifications >"
若要查看当前限制的网站分类,请使用 Get-SPOTenantCdnPolicies cmdlet:
Get-SPOTenantCdnPolicies -CdnType <Public>
返回的属性是 IncludeFileExtensions、 ExcludeRestrictedSiteClassifications 和 ExcludeIfNoScriptDisabled。
IncludeFileExtensions 属性包含从 CDN 提供的文件扩展名的列表。
注意
默认文件扩展名在公共和专用之间是不同的。
ExcludeRestrictedSiteClassifications 属性包含要从 CDN 中排除的网站分类。 例如,可以排除标记为 机密 的网站,以便不会从 CDN 中提供应用了该分类的网站中的内容。
ExcludeIfNoScriptDisabled 属性根据站点级别的 NoScript 属性设置排除 CDN 中的内容。 默认情况下,NoScript 属性设置为“为新式网站启用”,将“为经典网站禁用”。 这取决于租户设置。
有关这些 cmdlet 的详细信息,请参阅 Set-SPOTenantCdnPolicy 和 Get-SPOTenantCdnPolicies。
为资产添加源
使用 Add-SPOTenantCdnOrigin cmdlet 定义源。 可以定义多个源。 源是 SharePoint 库或文件夹的 URL,其中包含要由 CDN 托管的资产。
重要
切勿将包含用户信息或被视为对组织敏感的资源置于公共来源中。
Add-SPOTenantCdnOrigin -CdnType <Public> -OriginUrl <path>
path 的值是包含资产的库或文件夹的相对路径。 除了相对路径之外,还可以使用通配符。 源支持在 URL 前面附加的通配符。 这允许你创建跨多个站点的源。 例如,若要将所有站点的 文件夹中的所有资产 master pages
作为 CDN 中的公共源包含在内,请键入以下命令:
Add-SPOTenantCdnOrigin -CdnType Public -OriginUrl */masterpage
- 通配符修饰符 */ 只能在路径的开头使用,并且与指定 URL 下的所有 URL 段匹配。
- 路径可以指向文档库、文件夹或网站。 例如,路径 */site1 与网站下的所有文档库匹配。
可以添加具有特定相对路径的源。 不能使用完整路径添加源。
本示例在特定网站上添加 siteassets 库的公共源:
Add-SPOTenantCdnOrigin -CdnType Public -OriginUrl sites/site1/siteassets
以下示例在网站集的网站资产库中添加 folder1 文件夹的公共源:
Add-SPOTenantCdnOrigin -CdnType Public -OriginUrl sites/test/siteassets/folder1
如果路径中有空格,则可以用双引号将路径括起来,或者将空格替换为 URL 编码 %20。 以下示例在网站集的网站资产库中添加 文件夹 1 文件夹的专用源:
Add-SPOTenantCdnOrigin -CdnType Public -OriginUrl sites/test/siteassets/folder%201
Add-SPOTenantCdnOrigin -CdnType Public -OriginUrl "sites/test/siteassets/folder 1"
有关此命令及其语法的详细信息,请参阅 Add-SPOTenantCdnOrigin。
运行 命令后,系统会跨数据中心同步配置。 此结果最多可能需要 15 分钟。
示例:为母版页和 SharePoint Online 样式库配置公共源
通常,启用 Office 365 CDN 时,默认会为你设置这些源。 但是,如果要手动启用它们,请执行以下步骤。
使用 Add-SPOTenantCdnOrigin cmdlet 将样式库定义为公共源。
Add-SPOTenantCdnOrigin -CdnType Public -OriginUrl */style%20library
使用 Add-SPOTenantCdnOrigin cmdlet 将母版页定义为公共源。
Add-SPOTenantCdnOrigin -CdnType Public -OriginUrl */masterpage
有关此命令及其语法的详细信息,请参阅 Add-SPOTenantCdnOrigin。
运行 命令后,系统会跨数据中心同步配置。 此结果最多可能需要 15 分钟。
管理Office 365 CDN
设置 CDN 后,可以在更新内容或需求更改时对配置进行更改,如本部分所述。
在 Office 365 CDN 中添加、更新或删除资产
完成设置步骤后,可以添加新资产,并根据需要随时更新或删除现有资产。 只需对标识为源的文件夹或 SharePoint 库中的资产进行更改即可。 如果添加新资产,它将立即通过 CDN 获得。 但是,如果更新资产,则新副本最多需要 15 分钟才能传播并在 CDN 中可用。
如果需要检索源的位置,可以使用 Get-SPOTenantCdnOrigins cmdlet。 有关如何使用此 cmdlet 的信息,请参阅 Get-SPOTenantCdnOrigins。
从 Office 365 CDN 中删除源
可以使用 Remove-SPOTenantCdnOrigin cmdlet 删除对标识为源的文件夹或 SharePoint 库的访问权限。
Remove-SPOTenantCdnOrigin -OriginUrl <path> -CdnType <Public | Private | Both>
有关如何使用此 cmdlet 的信息,请参阅 Remove-SPOTenantCdnOrigin。
修改 Office 365 CDN 中的源
创建源后,无法对其进行修改。 请改为删除源,然后添加一个新源。 有关详细信息,请参阅从 Office 365 CDN 中删除源和为资产添加源。
禁用Office 365 CDN
使用 Set-SPOTenantCdnEnabled cmdlet 为组织禁用 CDN。 如果为 CDN 启用了公共源,则需要运行 cmdlet,如以下示例所示。
若要禁止在 CDN 中使用公共源,请输入以下命令:
Set-SPOTenantCdnEnabled -CdnType Public -Enable $false
有关此 cmdlet 的详细信息,请参阅 Set-SPOTenantCdnEnabled。
使用 PnP PowerShell 设置和配置 Office 365 CDN
本部分中的过程要求使用 PnP PowerShell 连接到 SharePoint Online。 有关说明,请参阅 PnP PowerShell 入门。
完成这些步骤以设置和配置 CDN 以使用 PnP PowerShell 在 SharePoint Online 中托管资产。
选择展开
使组织能够使用 Office 365 CDN
在对租户 CDN 设置进行更改之前,应检索Office 365租户中 CDN 配置的当前状态。 使用 PnP PowerShell 连接到租户:
Connect-PnPOnline -Url https://contoso-admin.sharepoint.com -UseWebLogin
现在,使用 Get-PnPTenantCdnEnabled cmdlet 从租户检索 CDN 状态设置:
Get-PnPTenantCdnEnabled -CdnType Public
屏幕上会显示指定 CdnType 的 CDN 状态。
使用 Set-PnPTenantCdnEnabled cmdlet 使组织能够使用 Office 365 CDN。 可以让组织使用公共源。 还可以将 CDN 配置为在启用时跳过默认源的设置。 稍后可以随时添加这些源,如本文所述。
在 PnP PowerShell 中:
Set-PnPTenantCdnEnabled -CdnType Public -Enable $true
若要使组织能够使用公共源,但跳过设置默认源,请键入以下命令:
Set-PnPTenantCdnEnabled -CdnType Public -Enable $true -NoDefaultOrigins
有关启用Office 365 CDN 时默认预配的源的信息,以及跳过默认源设置的潜在影响,请参阅默认 CDN 源。
若要使组织能够使用公共源,请键入以下命令:
Set-PnPTenantCdnEnabled -CdnType Public -Enable $true
有关此 cmdlet 的详细信息,请参阅 Set-PnPTenantCdnEnabled。
更改要包含在 Office 365 CDN 中的文件类型列表 (可选)
提示
使用 Set-PnPTenantCdnPolicy cmdlet 定义文件类型时,将覆盖当前定义的列表。 如果要向列表添加更多文件类型,请先使用 cmdlet 了解已允许的文件类型,并将其与新文件类型一起包含在列表中。
使用 Set-PnPTenantCdnPolicy cmdlet 定义可由 CDN 中的公共源托管的静态文件类型。 默认情况下,允许使用常见资产类型,例如.css和 .js。
在 PnP PowerShell 中:
Set-PnPTenantCdnPolicy -CdnType Public -PolicyType IncludeFileExtensions -PolicyValue "<Comma-separated list of file types >"
例如,若要启用 CDN 以托管.css和 .png 文件,请输入 命令:
Set-PnPTenantCdnPolicy -CdnType Public -PolicyType IncludeFileExtensions -PolicyValue "CSS,PNG"
若要查看 CDN 当前允许的文件类型,请使用 Get-PnPTenantCdnPolicies cmdlet:
Get-PnPTenantCdnPolicies -CdnType Public
有关这些 cmdlet 的详细信息,请参阅 Set-PnPTenantCdnPolicy 和 Get-PnPTenantCdnPolicies。
更改要从 Office 365 CDN 中排除的网站分类列表 (可选)
提示
使用 Set-PnPTenantCdnPolicy cmdlet 排除网站分类时,将覆盖当前定义的列表。 如果要排除更多网站分类,请先使用 cmdlet 了解哪些分类已被排除,然后将其与新分类一起添加。
使用 Set-PnPTenantCdnPolicy cmdlet 排除不希望通过 CDN 提供的网站分类。 默认情况下,不排除任何网站分类。
在 PnP PowerShell 中:
Set-PnPTenantCdnPolicy -CdnType <Public> -PolicyType ExcludeRestrictedSiteClassifications -PolicyValue "<Comma-separated list of site classifications>"
若要查看当前限制的网站分类,请使用 Get-PnPTenantCdnPolicies cmdlet:
Get-PnPTenantCdnPolicies -CdnType <Public>
返回的属性是 IncludeFileExtensions、 ExcludeRestrictedSiteClassifications 和 ExcludeIfNoScriptDisabled。
IncludeFileExtensions 属性包含从 CDN 提供的文件扩展名的列表。
注意
默认文件扩展名在公共和专用之间是不同的。
ExcludeRestrictedSiteClassifications 属性包含要从 CDN 中排除的网站分类。 例如,可以排除标记为 机密 的网站,以便不会从 CDN 提供应用了该分类的网站中的内容。
ExcludeIfNoScriptDisabled 属性根据站点级别的 NoScript 属性设置排除 CDN 中的内容。 默认情况下,NoScript 属性设置为“为新式网站启用”,将“为经典网站禁用”。 这取决于租户设置。
有关这些 cmdlet 的详细信息,请参阅 Set-PnPTenantCdnPolicy 和 Get-PnPTenantCdnPolicies。
为资产添加源
使用 Add-PnPTenantCdnOrigin cmdlet 定义源。 可以定义多个源。 源是 SharePoint 库或文件夹的 URL,其中包含要由 CDN 托管的资产。
重要
切勿将包含用户信息或被视为对组织敏感的资源置于公共来源中。
Add-PnPTenantCdnOrigin -CdnType <Public> -OriginUrl <path>
path 的值是包含资产的库或文件夹的相对路径。 除了相对路径之外,还可以使用通配符。 源支持在 URL 前面附加的通配符。 这允许你创建跨多个站点的源。 例如,若要将所有站点的 文件夹中的所有资产 master pages
作为 CDN 中的公共源包含在内,请键入以下命令:
Add-PnPTenantCdnOrigin -CdnType Public -OriginUrl */masterpage
- 通配符修饰符 */ 只能在路径的开头使用,并且与指定 URL 下的所有 URL 段匹配。
- 路径可以指向文档库、文件夹或网站。 例如,路径 */site1 与网站下的所有文档库匹配。
可以添加具有特定相对路径的源。 不能使用完整路径添加源。
本示例在特定网站上添加网站资产库的公共源:
Add-PnPTenantCdnOrigin -CdnType Public -OriginUrl sites/site1/siteassets
以下示例在网站集的网站资产库中添加 folder1 文件夹的公共源:
Add-PnPTenantCdnOrigin -CdnType Public -OriginUrl sites/test/siteassets/folder1
如果路径中有空格,则可以用双引号将路径括起来,或者将空格替换为 URL 编码 %20。 以下示例在网站集的网站资产库中添加 文件夹 1 文件夹的公共源:
Add-PnPTenantCdnOrigin -CdnType Public -OriginUrl sites/test/siteassets/folder%201
Add-PnPTenantCdnOrigin -CdnType Public -OriginUrl "sites/test/siteassets/folder 1"
有关此命令及其语法的详细信息,请参阅 Add-PnPTenantCdnOrigin。
运行 命令后,系统会跨数据中心同步配置。 此结果最多可能需要 15 分钟。
示例:为母版页和 SharePoint Online 样式库配置公共源
通常,启用 Office 365 CDN 时,默认会为你设置这些源。 但是,如果要手动启用它们,请执行以下步骤。
使用 Add-PnPTenantCdnOrigin cmdlet 将样式库定义为公共源。
Add-PnPTenantCdnOrigin -CdnType Public -OriginUrl */style%20library
使用 Add-PnPTenantCdnOrigin cmdlet 将母版页定义为公共源。
Add-PnPTenantCdnOrigin -CdnType Public -OriginUrl */masterpage
有关此命令及其语法的详细信息,请参阅 Add-PnPTenantCdnOrigin。
运行 命令后,系统会跨数据中心同步配置。 此结果最多可能需要 15 分钟。
示例:为 SharePoint Online 的网站资产、网站页面和发布图像配置公共源
使用 Add-PnPTenantCdnOrigin cmdlet 将网站资产文件夹定义为公共源。
Add-PnPTenantCdnOrigin -CdnType Public -OriginUrl */siteassets
使用 Add-PnPTenantCdnOrigin cmdlet 将网站页面文件夹定义为公共源。
Add-PnPTenantCdnOrigin -CdnType Public -OriginUrl */sitepages
使用 Add-PnPTenantCdnOrigin cmdlet 将发布图像文件夹定义为公共源。
Add-PnPTenantCdnOrigin -CdnType Public -OriginUrl */publishingimages
有关此命令及其语法的详细信息,请参阅 Add-PnPTenantCdnOrigin。
运行 命令后,系统会跨数据中心同步配置。 此结果最多可能需要 15 分钟。
示例:为 SharePoint Online 的网站集配置公共源
使用 Add-PnPTenantCdnOrigin cmdlet 将网站集定义为公共源。 例如:
Add-PnPTenantCdnOrigin -CdnType Public -OriginUrl sites/site1/siteassets
有关此命令及其语法的详细信息,请参阅 Add-PnPTenantCdnOrigin。
运行 命令后,系统会跨数据中心同步配置。 你可能会看到 “配置挂起” 消息。 当 SharePoint Online 租户连接到 CDN 服务时,预期会出现此结果。 此结果最多可能需要 15 分钟。
管理Office 365 CDN
设置 CDN 后,可以在更新内容或需求更改时对配置进行更改,如本部分所述。
在 Office 365 CDN 中添加、更新或删除资产
完成设置步骤后,可以添加新资产,并根据需要随时更新或删除现有资产。 只需对标识为源的文件夹或 SharePoint 库中的资产进行更改即可。 如果添加新资产,它将立即通过 CDN 获得。 但是,如果更新资产,则新副本最多需要 15 分钟才能传播并在 CDN 中可用。
如果需要检索源位置,可以使用 Get-PnPTenantCdnOrigin cmdlet。 有关如何使用此 cmdlet 的信息,请参阅 Get-PnPTenantCdnOrigin。
从 Office 365 CDN 中删除源
可以删除对标识为源的文件夹或 SharePoint 库的访问权限。 若要执行此作,请使用 Remove-PnPTenantCdnOrigin cmdlet。
Remove-PnPTenantCdnOrigin -OriginUrl <path> -CdnType <Public>
有关如何使用此 cmdlet 的信息,请参阅 Remove-PnPTenantCdnOrigin。
修改 Office 365 CDN 中的源
创建源后,无法对其进行修改。 请改为删除源,然后添加一个新源。 有关详细信息,请参阅从 Office 365 CDN 中删除源和为资产添加源。
禁用Office 365 CDN
使用 Set-PnPTenantCdnEnabled cmdlet 为组织禁用 CDN。 如果同时为 CDN 启用了公共源和专用源,则需要运行 cmdlet 两次,如以下示例所示。
若要禁止在 CDN 中使用公共源,请输入以下命令:
Set-PnPTenantCdnEnabled -CdnType Public -Enable $false
若要禁止在 CDN 中使用专用源,请输入以下命令:
Set-PnPTenantCdnEnabled -CdnType Private -Enable $false
有关此 cmdlet 的详细信息,请参阅 Set-PnPTenantCdnEnabled。
使用 CLI 为 Microsoft 365 设置和配置 Office 365 CDN
本部分中的过程需要 Microsoft 365 的 CLI。 然后,使用 login 命令连接到Office 365租户。
完成这些步骤,使用 cli for Microsoft 365 设置和配置 CDN 以在 SharePoint Online 中托管资产。
选择展开
启用 Office 365 CDN
可以运行 spo cdn set 命令,在租户中管理 Office 365 CDN 的状态。
若要在租户中启用Office 365公共 CDN,请运行以下命令:
m365 spo cdn set --type Public --enabled true
查看 Office 365 CDN 的当前状态
若要检查是否启用或禁用特定类型的 Office 365 CDN,请使用 spo cdn get 命令。
若要检查是否启用了Office 365公共 CDN,请运行以下命令:
m365 spo cdn get --type Public
查看Office 365 CDN 源
若要查看当前配置的Office 365公共 CDN 源,请运行以下命令:
m365 spo cdn origin list --type Public
有关启用 Office 365 CDN 时默认预配的源的信息,请参阅默认 CDN 源。
添加Office 365 CDN 源
重要
切勿将被视为对组织敏感的资源放置在配置为公共源的 SharePoint 文档库中。
运行 spo cdn origin add 命令可以定义 CDN 源。 可以定义多个源。 源是指向 SharePoint 库或文件夹的 URL,其中包含要托管 CDN 的资产。
m365 spo cdn origin add --type [Public] --origin <path>
其中 path
是包含资产的文件夹的相对路径。 除了相对路径之外,还可以使用通配符。
若要将所有网站的 母版页库中 的所有资产作为公共源包含,请运行以下命令:
m365 spo cdn origin add --type Public --origin */masterpage
注意
添加 CDN 源后,最长可能需要 15 分钟,才能通过 CDN 服务检索文件。 可以运行 spo cdn origin list 命令,验证特定源是否已启用。
删除Office 365 CDN 源
运行 spo cdn origin remove 命令可以删除指定类型 CDN 的 CDN 源。
若要从 CDN 配置中删除公共源,请运行以下命令:
m365 spo cdn origin remove --type Public --origin */masterpage
注意
删除 CDN 源不会影响存储在与源匹配的任何文档库中的文件。 如果使用其 SharePoint URL 引用这些资产,SharePoint 会自动切换回指向文档库的原始 URL。 如果使用公共 CDN URL 引用资产,则删除源会中断链接,需要手动更改它们。
修改Office 365 CDN 源
无法修改现有 CDN 源。 而应运行 spo cdn origin remove
命令删除以前定义的 CDN 源,并运行 spo cdn origin add
命令添加新源。
更改要包含在 Office 365 CDN 中的文件类型
默认情况下,CDN 中包含以下文件类型:.css
、、、.gif
.ico
.jpeg
.js
.png
.eot
.jpg
.map
、.svg
、.ttf
、、 .woff
和 。.woff2
如果需要在 CDN 中包含更多文件类型,可以使用 spo cdn 策略集 命令更改 CDN 配置。
注意
如果更改文件类型列表,也就是覆盖当前定义的列表。 如果要包含更多文件类型,请先使用 spo cdn 策略列表 命令找出当前配置的文件类型。
若要将 JSON 文件类型添加到公共 CDN 中包含的文件类型的默认列表,请运行以下命令:
m365 spo cdn policy set --type Public --policy IncludeFileExtensions --value "CSS,EOT,GIF,ICO,JPEG,JPG,JS,MAP,PNG,SVG,TTF,WOFF,JSON"
更改要从 Office 365 CDN 中排除的网站分类列表
使用 spo cdn 策略集 命令排除不希望通过 CDN 提供的网站分类。 默认情况下,不排除任何网站分类。
注意
如果更改已排除的网站分类列表,也就是覆盖当前定义的列表。 如果要排除其他分类,请先使用 spo cdn 策略列表 命令来确定当前配置了哪些分类。
若要从公共 CDN 中排除分类为 HBI 的站点,请运行以下命令:
m365 spo cdn policy set --type Public --policy ExcludeRestrictedSiteClassifications --value "HBI"
禁用Office 365 CDN
若要禁用 Office 365 CDN,请运行 spo cdn set
命令。例如:
m365 spo cdn set --type Public --enabled false
使用 CDN 资产
启用 CDN 并配置了源和策略后,即可开始使用 CDN 资产。
本部分将帮助你了解如何在 SharePoint 页面和内容中使用 CDN URL,以便 SharePoint 将公共和专用源中的资产请求重定向到 CDN。
有关如何使用 CDN 托管客户端 Web 部件的信息,请参阅文章从 Office 365 CDN 托管客户端 Web 部件 (Hello World 第 4 部分) 。
更新 CDN 资产的链接
若要使用添加到源的资产,只需使用源中文件的路径更新原始文件的链接。
- 编辑包含已添加到源的资产链接的页面或内容。 如果想要将链接更新到给定资产出现的位置,还可以使用几种方法之一在输入网站或网站集中全局搜索和替换链接。
- 对于指向源中资产的每个链接,请将路径替换为 CDN 源中文件的路径。 可以使用相对路径。
- 保存页面或内容。
例如,请考虑已复制到文档库文件夹 /site/CDN_origins/public/的图像 /site/SiteAssets/images/image.png。 若要使用 CDN 资产,请将图像文件位置的原始路径替换为源路径,以生成新的 URL /site/CDN_origins/public/image.png。
如果要使用资产的完整 URL 而不是相对路径,请构造链接,如下所示:
https://<TenantHostName>.sharepoint.com/sites/site/CDN_origins/public/image.png
注意
通常,不应将 URL 直接硬编码到 CDN 中的资产。 但是,如果需要,可以手动为公共源中的资产构造 URL。 有关详细信息,请参阅 对公共资产的 CDN URL 进行硬编码。
若要了解如何验证是否从 CDN 提供资产,请参阅排查Office 365 CDN 问题中的如何实现确认资产是否由 CDN提供?
在公共源中使用资产
SharePoint Online 中的 发布功能 会自动将存储在公共源中的资产的 URL 重写为其 CDN 等效项,以便从 CDN 服务而不是 SharePoint 提供资产。
如果源位于启用了发布功能的网站中,并且要卸载到 CDN 的资产属于以下类别之一,则如果资源尚未被 CDN 策略排除,则 SharePoint 会自动重写源中资产的 URL。
以下示例概述 SharePoint 发布功能会自动重写链接:
- 经典发布页 HTML 响应中的 IMG/LINK/CSS URL。
- 这包括作者在页面的 HTML 内容中添加的图像。
- 图片库 SlideShow Web 部件图像 URL。
- SPList REST API 中的图像字段 (RenderListDataAsStream) 结果。
- 使用新的属性 ImageFieldsToTryRewriteToCdnUrls 提供以逗号分隔的字段列表。
- 支持超链接字段和 PublishingImage 字段。
- SharePoint 图像呈现形式。
下图演示了 SharePoint 收到包含来自公共源资产的页面的请求时的工作流。
提示
如果要对页面上的特定 URL 禁用自动重写,可以检查页面并添加查询字符串参数?NoAutoReWrites=true 到要禁用的每个链接的末尾。
为公共资产构造 CDN URL
如果未为公共源启用 发布 功能,或者资产不是 CDN 服务自动重写功能支持的链接类型之一,则可以手动构造指向资产的 CDN 位置的 URL,并在内容中使用这些 URL。
注意
可以构造公共 CDN 的 URL,该 URL 不应进行硬编码,因为它可能会发生更改。
对于公共 CDN 资产,URL 格式如以下示例所示:
https://publiccdn.sharepointonline.com/<TenantHostName>/sites/site/library/asset.png
将 替换为 TenantHostName
租户名称。 例如:
https://publiccdn.sharepointonline.com/contoso.sharepoint.com/sites/site/library/asset.png
注意
使用页面上下文属性构造前缀,而不是硬编码 https://publiccdn.sharepointonline.com
,因为 URL 可能会更改。 如果将显示模板与经典 SharePoint Online 配合使用,则可以将显示模板中的 属性 window._spPageContextInfo.publicCdnBaseUrl
用于 URL 的前缀。 如果将 SPFx Web 部件用于新式 SharePoint 和经典 SharePoint,则可以使用 属性 ,该属性 this.context.pageContext.legacyPageContext.publicCdnBaseUrl
还提供 前缀。 如果前缀发生更改,则会使用它更新实现。
作为 SPFx 的示例,可以使用 属性 this.context.pageContext.legacyPageContext.publicCdnBaseUrl
host
- - relativeURL for the item
/
- /
- 构造 URL。 有关详细信息,请参阅第 1 季表演系列视频《在客户端代码中使用 CDN》。
排查Office 365 CDN 问题
如何实现确认 CDN 正在为资产提供服务?
将指向 CDN 资产的链接添加到页面后,可以通过浏览到页面、在图像呈现后右键单击图像并查看图像 URL 来确认资产正在从 CDN 提供。
还可以使用浏览器的开发人员工具查看页面上每个资产的 URL,或使用第三方网络跟踪工具。
注意
如果使用 Fiddler 等网络工具在从 SharePoint 页面呈现资产之外测试资产,则必须手动将引用器标头“Referer: https://yourdomain.sharepoint.com
”添加到 GET 请求,其中 URL 是 SharePoint Online 租户的根 URL。
无法直接在 Web 浏览器中测试 CDN URL,因为必须具有来自 SharePoint Online 的引用网站。 但是,如果将 CDN 资产 URL 添加到 SharePoint 页面,然后在浏览器中打开该页面,则 CDN 资产将呈现在页面上。
有关在 Microsoft Edge 浏览器中使用开发人员工具的详细信息,请参阅 Microsoft Edge 开发人员工具。
若要watch SharePoint 开发人员模式和实践 YouTube 频道中托管的简短视频,演示如何验证 CDN 是否正常工作,请参阅验证 CDN 使用情况并确保最佳网络连接。
为什么新源的资产不可用?
新源中的资产不会立即可供使用,因为注册通过 CDN 传播以及资产从源上传到 CDN 存储需要时间。 资产在 CDN 中可用所需的时间取决于资产数量和文件大小。
我的客户端 Web 部件或SharePoint 框架解决方案不起作用
为公共源启用 Office 365 CDN 时,CDN 服务会自动创建以下默认源:
- */MASTERPAGE
- */STYLE 库
- */CLIENTSIDEASSETS
如果缺少 */clientsideassets 源,SharePoint 框架解决方案失败,并且不会生成警告或错误消息。 此源可能缺失,因为 CDN 已启用,并将 -NoDefaultOrigins 参数设置为 $true,或者源已被手动删除。
可以使用以下 PowerShell 命令检查查看存在哪些源:
Get-SPOTenantCdnOrigins -CdnType Public
或者,可以使用 CLI for Microsoft 365 检查:
m365 spo cdn origin list
若要在 PowerShell 中添加源,请执行以下作:
Add-SPOTenantCdnOrigin -CdnType Public -OriginUrl */CLIENTSIDEASSETS
使用 CLI 为 Microsoft 365 添加源:
m365 spo cdn origin add --origin */CLIENTSIDEASSETS
使用 Office 365 CDN 需要哪些 PowerShell 模块和 CLI shell?
可以选择使用 SharePoint Online 命令行管理程序 PowerShell 模块或适用于 Microsoft 365 的 CLI 使用 Office 365 CDN。