Как использовать локализованные ресурсы в SPFx? - PullRequest
0 голосов
/ 15 мая 2018

В моем 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-manifts.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.

Технические подробности

[SPLoaderError.loadComponentError]: *** Не удалось загрузить компонент "63fefa07-d133-4d8b-beba-e4a961675cad" (SimpleContactFormWebPart). Исходная ошибка: *** Не удалось загрузить URL «https://publiccdn.sharepointonline.com/avvenireinc.sharepoint.com/sites/14480077efdd98d1f7ac72f606b8b39cd9fcec4dbae7db146cdded624b48b5c09c1eee47/PublicCDN/SimpleContactFormWebPart/simplecontactformwebpart-simplecontactformwebpartstrings_en-us_42a0f6681da2dc33b87df83d67355874.js' для ресурса SimpleContactFormWebPartStrings в компоненте '63fefa07-d133-4d8b-beba-e4a961675cad' (SimpleContactFormWebPart). Была проблема с сетью. Это может быть проблема с HTTPS сертификат. Убедитесь, что у вас есть правильный сертификат.

Как определить пути к CDN, чтобы SharePoint мог найти файл локализации!?

Редактировать: После удаления файла локализации и его ссылок я теперь получаю следующую ошибку, которая, по-видимому, указывает на то, что на самом деле при развертывании gulp bundle --ship ничего не развертывается:

[SPLoaderError.loadComponentError]: *** Не удалось загрузить компонент «63fefa07-d133-4d8b-beba-e4a961675cad» (SimpleContactFormWebPart). Исходная ошибка: *** Не удалось загрузить URL «https://publiccdn.sharepointonline.com/mycompany.sharepoint.com/sites/MySite/SubSite/SiteAssets/PublicCDN/simple-contact-form-web-part_cea1554eb41a7c3ea6a3ee01291a7e17.js' для ресурса 'simple-contact-form-web-part' в компоненте '63fefa07-d133-4d8b-beba-e4a961675cad' (SimpleContactFormWebPart). Была проблема с сетью. Это может быть проблема с HTTPS сертификат. Убедитесь, что у вас есть правильный сертификат.

1 Ответ

0 голосов
/ 15 мая 2018

Поскольку вы используете ссылку на CDN, я бы рекомендовал использовать SPComponentLoader.Ниже приведен пример с jQuery (замените ваш фактический путь CDN здесь): сначала импортируйте модуль import { SPComponentLoader } from '@microsoft/sp-loader' Теперь добавьте эту строку для загрузки вашего jQuery.Это асинхронный вызов SPComponentLoader.loadScript('https://code.jquery.com/jquery-3.2.1.min.js')

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 = $
})
...