首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MapBox GL CSP版本不渲染分片

MapBox GL CSP版本不渲染分片
EN

Stack Overflow用户
提问于 2020-01-15 23:55:02
回答 1查看 526关注 0票数 0

我正在尝试使用CSP version获得要渲染的地图。

JSFiddle和下面的代码中可以看到,除了渲染tiles之外,一切似乎都在正常工作。

控制台中不会抛出错误。

代码语言:javascript
复制
<div id='map'></div>
代码语言:javascript
复制
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);
代码语言:javascript
复制
#map {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 100%;
}
EN

回答 1

Stack Overflow用户

发布于 2020-01-25 07:09:27

我在Mapbox工作-我相信这是因为Salesforce不允许加载worker脚本。每个Salesforce

CSP你不能从第三方站点加载JavaScript资源,即使它是一个可信的站点。若要使用来自第三方站点的JavaScript库,请将其添加到静态资源,然后将该静态资源添加到您的组件。从静态资源中加载库之后,您可以正常使用它。

Static Resource是一个存档文件,其中包含您要在Salesforce中访问的文件。所以简而言之,Salesforce的安全策略将只加载mapbox-gl-csp-worker.js的本地副本。您需要使用该文件创建一个静态资源,以使地图正常工作:

  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更改为资源的相对路径。

有几件事需要牢记:

确保将脚本标记指向GL JS的CSP内部版本:<script src='https://api.mapbox.com/mapbox-gl-js/v1.6.1/mapbox-gl-csp.js'></script>

  • Whenever如果要更新GL JS,则需要下载csp内部版本的新版本,并更新
  • 上的静态资源。

祝好运!

布兰迪

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59755074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档