You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mapbox GL JS加载自定义字体404 如何指定字体请求用户名路径

Mapbox GL JS 自定义字体加载404问题

问题场景

  • 使用版本:Mapbox GL JS v2.8.0
  • 操作:通过编程方式向地图添加Symbol类型图层,文本标签需要使用此前通过Mapbox Studio上传至个人账号的自定义字体
  • 现有图层配置代码:
const layer = {
    id: this.getLayerId(),
    type: 'symbol',
    layout: {
        'text-field': ['get', 'name'],
        'text-font': [
            "Chakra Petch Italic", // 个人账号下上传的自定义字体
            "Arial Unicode MS Regular" // 兜底公共字体
        ]
    },
    paint: {
        'text-color': '#ffffff',
    }
}

异常表现

地图渲染时字体资源拉取返回404错误,抓包发现默认请求的字体地址为公共路径:

https://api.mapbox.com/fonts/v1/mapbox/Chakra%20Petch%20Italic,Arial%20Unicode%20MS%20Regular/0-255.pbf?access_token={access_token}

问题根源:路径中使用了公共账号段/mapbox/,而非个人账号对应的/{username}/段。手动替换路径段为个人用户名后,可正常获取.pbf格式字体数据,验证地址如下:

https://api.mapbox.com/fonts/v1/{username}/Chakra%20Petch%20Italic,Arial%20Unicode%20MS%20Regular/0-255.pbf?access_token={access_token}

对照测试结果:在Mapbox Studio中直接创建同配置图层、使用同款自定义字体时,抓包显示字体请求走的是带个人用户名的正确路径,但Studio代码检查器中展示的text-font配置,和上述代码中编写的双字体字符串数组完全一致。

待解决问题

如何在Style layer的JSON配置中,指定字体资源从个人用户名路径下查找,而非默认拉取公共mapbox用户路径下的资源。


内容的提问来源于stack exchange,提问作者ImClarky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 07:30:51