项目场景:

假设这是我的项目结构,我现在需要在aa.js文件中引入并使用aa.geojson文件,
问题:
当我引入路径是const filePath = '../geo/aa.geojson';的时候,系统报错 "aa.geojson is not Found",找不到这个文件
但是如果引入路径是const filePath = '../../src/geo/aa.geojson';的时候,则正确,下面分析一下原因
原因分析:
'../geo/aa.geojson' 报错原因:
这个路径意味着你希望从 aa.js 所在的目录(src/)向上移动一级,然后寻找 geo 目录。但是,当你向上移动一级时,你会到达 project-root/,在 project-root/ 中并不存在一个直接名为 geo 的目录,而是有一个 src/ 目录,而 geo 目录是在 src/ 目录内部的。因此,这个路径是错误的,系统找不到 geo 目录,所以会报错。
'../../src/geo/aa.geojson' 可以找到的原因:
这个路径意味着你希望从 aa.js 所在的目录(src/)向上移动两级,然后进入 src 目录,再进入 geo 目录。当你从 src/ 向上移动两级时,你实际上已经超出了项目根目录,这在文件系统上通常不会导致错误,但是它不是你想要的结果。然而,由于文件系统允许向上超出项目根目录,这个路径实际上会回绕到 src/ 目录,然后找到 geo 目录和 aa.geojson 文件。
总结一下
错误路径 '../geo/aa.geojson':
- 从 aa.js(位于 src/)向上移动一级会到达 project-root/。
- 在 project-root/ 中没有直接的 geo 目录,因此路径找不到。
正确路径 '../../src/geo/aa.geojson':
-
从 aa.js(位于 src/)向上移动两级实际上超出了项目根目录。
-
由于文件系统的回绕行为,这会导致它回到 src/ 目录,并正确找到 geo/aa.geojson。


















