Версия MapBox GL CSP не рендерит тайлы - PullRequest
0 голосов
/ 15 января 2020

Я пытаюсь получить карту для рендеринга с использованием CSP версии .

Все работает, кроме рендеринга тайлов, как вы можете видеть из JSFiddle и приведенный ниже код.

В консоли не выдается никаких ошибок.

<div id='map'></div>
mapboxgl.accessToken = 'ACCESS_TOKEN';
mapboxgl.workerUrl = 'https://api.mapbox.com/mapbox-gl-js/v1.6.1/mapbox-gl-csp-worker.js';

var el = document.createElement('div');
 el.style.backgroundImage = 'url(https://placekitten.com/g/40/40/)';
 el.style.width = 40 + 'px';
 el.style.height = 40 + 'px';

var map = window.map = new mapboxgl.Map({
    container: 'map',
    zoom: 12.5,
    center: [-74.5, 40],
    style: 'mapbox://styles/mapbox/streets-v11',
    hash: true
});

new mapboxgl.Marker(el)
   .setLngLat([ -74.5, 40 ])
   .addTo(map);
#map {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 100%;
}

1 Ответ

1 голос
/ 25 января 2020

Я работаю в Mapbox - и я считаю, что это происходит потому, что Salesforce не позволяет загружать рабочий скрипт. За Salesforce :

Невозможно загрузить JavaScript ресурсов со стороннего сайта, даже если это доверенный сайт CSP. Чтобы использовать библиотеку JavaScript со стороннего сайта, добавьте ее в ресурс stati c, а затем добавьте статический ресурс в свой компонент. После загрузки библиотеки из ресурса stati c ее можно использовать как обычно.

A Stati c Resource - это архивный файл, содержащий файлы, которые вы хочу получить доступ в Salesforce. Таким образом, короткая версия такова, что политика безопасности Salesforce будет загружать только локальную копию mapbox-gl-csp-worker. js. Вам нужно создать ресурс stati c с этим файлом, чтобы ваша карта работала:

  1. Загрузите копию mapbox-gl-csp-worker. js файл.
  2. Создать ZIP-архив или JAR-архив, содержащий рабочий файл.
  3. https://help.salesforce.com/articleView?id=pages_static_resources_create.htm&type=5 в Salesforce.
  4. Измените рабочий URL-адрес в вашем коде на относительный путь к ресурсу.

Несколько вещей, о которых следует помнить:

  • Убедитесь, что вы указываете тег сценария на сборку CSP для GL JS: <script src='https://api.mapbox.com/mapbox-gl-js/v1.6.1/mapbox-gl-csp.js'></script>
  • Всякий раз, когда вы хотите обновить GL JS, вам необходимо загрузить новую версию сборки csp и обновить stati c ресурс в Salesforce.

Удачи!

Brandi

...