Fusion图表无法渲染

时间:2014-01-12 08:05:22

标签: javascript python flask fusioncharts

在这里,我尝试使用Flask测试FusionCharts,但是当它使用时,它的工作原理只是简单的HTML和没有Python代码的javascript,我无法使它工作。

的layout.html

<!DOCTYPE html>
<html>
<head>
    <title>Flask Fusion</title>
    <script type="text/javascript" src="../static/fusion.js"></script>
    <script type="text/javascript" src="../static/jquery.min.js"></script>
</head>
<body>
{% block content %}
{% endblock %}
</body>
</html>

的index.html

{% extends 'layout.html' %}

{% block content %}
    <div id="chartContainer">FusionCharts XT will load here!</div>
    <script type="text/javascript"><!--

       var myChart = new FusionCharts( "../static/Column3D.swf",
      "myChartId", "400", "300", "0" );
      myChart.setXMLUrl("data.xml");
      myChart.render("chartContainer");

    // -->
    </script>
{% endblock %}

目录结构

enter image description here

我发现data.xml文件通过查看来自控制台的日志返回404

127.0.0.1 - - [12/Jan/2014 13:25:35] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [12/Jan/2014 13:25:35] "GET /static/fusion.js HTTP/1.1" 304 -
127.0.0.1 - - [12/Jan/2014 13:25:35] "GET /static/jquery.min.js HTTP/1.1" 304 -
127.0.0.1 - - [12/Jan/2014 13:25:35] "GET /data.xml HTTP/1.1" 404 -
127.0.0.1 - - [12/Jan/2014 13:25:35] "GET /static/Column3D.swf HTTP/1.1" 304 -
127.0.0.1 - - [12/Jan/2014 13:25:35] "GET /data.xml?FCTime=261 HTTP/1.1" 404 -

data.xml的路径完全正确。我不知道为什么它不渲染。请帮忙。

1 个答案:

答案 0 :(得分:2)

未检索data.xml并在flask-template-rendering时将其放入图表中。当加载了fusion.js lib的客户端调用图表初始化时,会发出请求以检索资源,因此应该可以从客户端访问它。

data.xml从客户端(因为它位于template/文件夹中)是不可访问的(因此是404),并且最重要的是路径错误,如您所见:

...
127.0.0.1 - - [12/Jan/2014 13:25:35] "GET /data.xml HTTP/1.1" 404 -
127.0.0.1 - - [12/Jan/2014 13:25:35] "GET /static/Column3D.swf HTTP/1.1" 304 -
...
使用/static/Column3D.swf获取

http://whateveryour.domain/static/Column3D.swf/data.xml是使用不存在的http://whateveryour.domain/data.xml获取的。

尝试将data.xml放在静态文件夹中(毕竟这是一个静态资源而不是模板)并以与Column3D.swf相同的方式访问它,它应该只能工作细