引用geojson文件时浏览器报404错误,已验证数据正确如何解决
你提交的报错信息中,浏览器实际请求的geojson地址是 https://domain/resource/point.geojson,但代码中配置的地址是 https://domain/json/point.geojson,两者路径不一致,优先从这个方向排查:
- 路径重写规则核查:排查项目是否配置了全局静态资源路径转换规则、代理转发规则,比如前端框架的publicPath配置、Webpack/Vite的资源代理规则,或者服务端的Nginx/Apache重写规则,是否把
/json/路径下的请求自动转发到了/resource/路径下,但对应路径下没有存放point.geojson文件 - 直接访问资源验证:将代码中填写的geojson地址直接复制到浏览器地址栏访问,若直接访问也返回404,优先核查三个点:文件是否实际存放在服务器对应的
/json/目录下、文件名拼写是否正确(Linux系统下文件名区分大小写,注意大小写是否匹配)、文件后缀是否正确(比如实际是.json后缀你写成了.geojson) - 服务端MIME类型配置:部分服务器默认未配置.geojson后缀的资源解析规则,会直接拦截该类请求返回404,需要在服务端配置中添加.geojson对应的MIME类型,配置值为
application/geo+json - 访问权限核查:确认服务器是否配置了
/json/目录的访问权限限制、IP拦截规则或者鉴权校验,未登录/无权限的访问会被重定向或者直接返回404 - 逻辑兜底验证:如果要先排除地图代码和geojson格式的问题,可以直接把geojson的JSON对象赋值给addSource的data参数,跳过网络请求:
map.addSource('places', { 'type': 'geojson', 'data': { "type": "FeatureCollection", "features": [ // 你自己的geojson要素内容 ] } });
如果修改后图层可以正常渲染,即可完全确定问题出在资源路径或服务端配置,和代码逻辑、geojson格式无关。
内容的提问来源于stack exchange,提问作者peter
相关产品推荐
相关产品推荐

