d3.csv无法上传一个目录
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了d3.csv无法上传一个目录相关的知识,希望对你有一定的参考价值。
我试图使用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)由于浏览器安全模型,您无法通过直接指定本地目录中文件的绝对路径或相对路径,从浏览器直接引用/加载本地计算机上的文件。您必须使用本地网络服务器来提供您的文件并使其可供浏览器访问(或者您将它们上传到您可以在d3.csv
调用中指定的URL ...但这将是乏味的)。
2)通常,您可以在包含.js
和.html
文件的目录中运行基本HTTP服务器。例如,如果您在系统范围内安装了Python 3,则可以使用python -m http.server
从命令行启动目录中的HTTP服务器。然后你可以在http://localhost:8000
上访问你的站点。不幸的是,这个基本服务器只提供它所启动的目录中的文件,并且不允许对它所启动的目录之外的其他文件进行相对路径引用。为此,你需要运行一个功能更强大/更灵活的本地Web服务器,可以设置为允许在一堆文件夹中相对路径引用文件。
这有点单调乏味,但为什么浏览器不允许直接访问本地文件是有道理的。
以上是关于d3.csv无法上传一个目录的主要内容,如果未能解决你的问题,请参考以下文章
将 d3.csv 方法转换为 d3.csv.parse 方法