d3.csv无法上传一个目录

Rob*_*iuc 5 javascript navigation d3.js

我试图使用d3.csv引用位于父文件夹中的文件,我无法找到正确的语法.

我的文件夹结构如下:

root
??? js
    ??? data.csv
    ??? myGraph.js
Run Code Online (Sandbox Code Playgroud)

在js文件夹里面我有myGraph.js.在这个文件中,我有以下代码:

d3.csv("data.csv", function(error, data) {
   data.forEach(function(d) {
   d.date = parseDate(d.date);
   d.close = +d.close;
});
Run Code Online (Sandbox Code Playgroud)

如果我将我的data.csv放在js文件夹中,一切正常.但是,如果我在根文件夹中移动data.csv文件

root
??? data.csv
??? js       
    ??? myGraph.js
Run Code Online (Sandbox Code Playgroud)

并将代码更改为此然后它停止工作:

d3.csv("/../data.csv", function(error, data)
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

d3.csv("../data.csv", function(error, data)
Run Code Online (Sandbox Code Playgroud)

有谁知道我做错了什么以及正确的语法是什么?非常感谢.

Ham*_*uey 7

罗伯特 - 要完成这项工作,还有很多工作要做:

1)由于浏览器安全模型,您无法通过直接指定本地目录中文件的绝对路径或相对路径,从浏览器直接引用/加载本地计算机上的文件.您必须使用本地Web服务器来提供您的文件并使其可供浏览器访问(或者您将它们上传到您可以在d3.csv呼叫中指定的URL ...但这将是乏味的).

2)通常,您可以在包含您.js.html文件的目录中运行基本HTTP服务器.例如,如果您在系统范围内安装了Python 3,则可以使用命令行在目录中启动HTTP服务器python -m http.server.然后,您可以访问您的站点,http://localhost:8000不幸的是,这个基本服务器只提供启动目录中的文件,并且不允许对其启动目录之外的其他文件进行相对路径引用.为此,您需要运行一个功能更强大/更灵活的本地Web服务器,可以设置为允许在一堆文件夹中基于相对路径引用文件.

这有点单调乏味,但为什么浏览器不允许直接访问本地文件是有道理的.