我们正在尝试熟悉D3(http://d3js.org/),特别是http://bl.ocks.org/mbostock/3306362和http://bl.ocks.org/mbostock/2206590等示例。似乎所有这些示例都使用本地文件IO来加载地理定位信息。以下代码片段很常见:
queue()
.defer(d3.json, "/mbostock/raw/4090846/us.json")
.defer(d3.tsv, "unemployment.tsv")
.await(ready)
而其他样本通常使用此签名来加载数据:
d3.json("someJSONFile.json", function(error, uk) {
console.log(uk);
});
我们已经创建了几个本地html文件来测试样本,但我们遇到了安全问题。很明显,脚本正在访问一个本地文件,这实际上是在Microsoft堆栈中给我们带来问题(Apple或Linux目前不是一个选项,尽管我们已经尝试过Chrome,但没有成功)。我们如何启用html文件或重构脚本以访问本地文件?
答案 0 :(得分:6)
您需要通过Web服务器托管文件,因为Web浏览器限制可以在本地访问哪些类型的文件。在Windows机器上执行此操作的最简单方法:
安装python
导航到包含cmd.exe
示例的目录。按住shift键,右键单击带有示例的文件夹并选择Open Command Window Here
是最简单的方法。
在命令提示符下,在较新版本上输入python -m SimpleHTTPServer 8000
或python -m http.server 8000
以启动Web服务器。
打开网页浏览器(我真的建议使用chrome,开发工具远远超过ff和ie),转到127.0.0.1:8000
。这个例子应该出现了。