Sharepoint 如何在SPFx中使用本地化资源?

Sharepoint 如何在SPFx中使用本地化资源?,sharepoint,cdn,sharepoint-online,spfx,Sharepoint,Cdn,Sharepoint Online,Spfx,我在config.json中定义了以下部分: "externals": { "jquery": { "path": "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js", "globalName": "jQuery" }, "bootstrap": { "path": "https://cdnjs.cloudflare.com/ajax/libs/tw

我在config.json中定义了以下部分:

  "externals": {
    "jquery": {
      "path": "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js",
      "globalName": "jQuery"
    },
    "bootstrap": {
      "path": "https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.1/js/bootstrap.min.js",
      "globalName": "jQuery"
    }
  },
  "localizedResources": {
    "SimpleContactFormWebPartStrings": "lib/webparts/simpleContactForm/loc/{locale}.js"
  }
在我的write-manifests.json中,我有以下内容:

{
  "$schema": "https://dev.office.com/json-schemas/spfx-build/write-manifests.schema.json",
  "cdnBasePath": "https://publiccdn.sharepointonline.com/mycompany.sharepoint.com/sites/{super long ID for the CDN}/PublicCDN/SimpleContactFormWebPart/"
}
然而,当我使用gulp bundle-ship和gulp package solution-ship部署我的站点时,我得到了一个错误

我还尝试了cdnBasePath的以下值:

请注意:PublicCDN是SiteAssets库下的一个文件夹

技术细节

[SploadeError.loadComponentError]: ***未能加载组件63fefa07-d133-4d8b-beba-e4a961675cad SimpleContactFormWeb部件。原始错误:**加载URL失败 用于组件中的资源“SimpleContactFormWebPartString” “63fefa07-d133-4d8b-beba-e4a961675cad”SimpleContactFormWeb部件。 有一个网络问题。这可能是HTTPS的问题 证明书确保您拥有正确的证书

如何定义我的CDN路径,以便SharePoint可以找到本地化文件

编辑:删除本地化文件及其引用后,我现在得到以下错误,这似乎表明在运行gulp bundle-ship时实际上没有部署任何内容:

[SploadeError.loadComponentError]:***未能加载组件 63fefa07-d133-4d8b-beba-e4a961675cad SimpleContactFormWeb部件。 原始错误:**加载URL失败 对于组件中的资源“简单联系表单web部件” “63fefa07-d133-4d8b-beba-e4a961675cad”SimpleContactFormWeb部件。 有一个网络问题。这可能是HTTPS的问题 证明书确保您拥有正确的证书


由于您使用的是CDN参考,我建议您使用SPComponentLoader。下面是jQuery替换实际CDN路径的示例: 首先从'@microsoft/sp loader'导入模块导入{SPComponentLoader} 现在添加这一行以加载jQuery。这是异步调用 SPComponentLoader.loadScript'https://code.jquery.com/jquery-3.2.1.min.js"


您好,谢谢,但是jQuery和Bootstrap似乎加载正确;SharePoint CDN上的本地化文件未正确加载。您建议我如何加载它们?我可以知道您正在访问的文件是什么吗?它与您的组织或公共SP有关吗?是的,它是我的配置中列出的文件,路径为lib/webparts/simpleContactForm/loc/{locale}.js,其中locale为en_us。我知道这是不可能的。但是你能告诉我这个文件能做什么吗?似乎您正在使用特定于语言的文件。这将由SPFx框架自动处理。这只是MSDN描述的标准语言环境文件。这个问题听起来类似于:
SPComponentLoader.loadScript(
      'https://code.jquery.com/jquery-3.2.1.min.js'
    ).then(($: any) => {
      sayHello();
//access jQuery object with window['jQuery'] or declare variable inside your class as public jQuery: any, and assign $ as this.jQuery = $
})