我试图使用d3.csv引用位于父文件夹中的文件,我无法找到正确的语法.
我的文件夹结构如下:
root ??? js ??? data.csv ??? myGraph.js
在js文件夹里面我有myGraph.js.在这个文件中,我有以下代码:
d3.csv("data.csv", function(error, data) { data.forEach(function(d) { d.date = parseDate(d.date); d.close = +d.close; });
如果我将我的data.csv放在js文件夹中,一切正常.但是,如果我在根文件夹中移动data.csv文件
root ??? data.csv ??? js ??? myGraph.js
并将代码更改为此然后它停止工作:
d3.csv("/../data.csv", function(error, data)
我也尝试过:
d3.csv("../data.csv", function(error, data)
有谁知道我做错了什么以及正确的语法是什么?非常感谢.
罗伯特 - 要完成这项工作,还有很多工作要做:
1)由于浏览器安全模型,您无法通过直接指定本地目录中文件的绝对路径或相对路径,从浏览器直接引用/加载本地计算机上的文件.您必须使用本地Web服务器来提供您的文件并使其可供浏览器访问(或者您将它们上传到您可以在d3.csv
呼叫中指定的URL ...但这将是乏味的).
2)通常,您可以在包含您.js
和.html
文件的目录中运行基本HTTP服务器.例如,如果您在系统范围内安装了Python 3,则可以使用命令行在目录中启动HTTP服务器python -m http.server
.然后,您可以访问您的站点,http://localhost:8000
不幸的是,这个基本服务器只提供启动目录中的文件,并且不允许对其启动目录之外的其他文件进行相对路径引用.为此,您需要运行一个功能更强大/更灵活的本地Web服务器,可以设置为允许在一堆文件夹中基于相对路径引用文件.
这有点单调乏味,但为什么浏览器不允许直接访问本地文件是有道理的.