在这里,我尝试使用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 %}
目录结构
我发现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
的路径完全正确。我不知道为什么它不渲染。请帮忙。
答案 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
相同的方式访问它,它应该只能工作细