我的模板/文件夹上有一些带有一些html文件的FLask应用程序。我想在我的index.html中添加一个不错的D3可视化,所以首先我尝试将这个气泡示例复制/粘贴到我的templates /文件夹中名为bubbles.html的文件中: http://bl.ocks.org/mbostock/4063269
我尝试用Firefox打开bubbles.html,但只获得了空白区域,气泡应该在哪里。这是奇怪的事情。当我从templates /文件夹中取出bubbles.html并从另一个目录打开它时,页面正确加载。
有什么问题?如何将此情节合并到我的应用程序中?
答案 0 :(得分:2)
确保http服务器正确提供您的文件。这里的主要问题是你是否将json直接粘贴到你正在创建的index.html中,或者你是否正在使用单独的json文件。
d3.json进行ajax调用以加载json文件。为了发出这个json请求,你必须有一个http服务器服务于包含单独的json文件的目录。这很可能就是为什么当您更改目录(可能是某个服务器正在服务的目录)时,会出现预期的图表。相反,如果您以内联方式使用对json的引用替换d3.json调用,则不需要服务器。相反,您应该能够使用浏览器从您的文件系统中静态查看该示例,无论它位于何处。
需要服务器的原因是由于w3c标准中描述的原始策略相同。你可以在这个s.o中找到一个简单的解决方案。发布:D3 Bar Graph example not working locally。它提供了两种解决方案,可以为正在提供文件的目录生成http服务器,也可以在浏览器中修改相同的源策略。由于安全标准,我建议使用服务器方法。