2014-01-12 161 views
2

這裏我試圖用Flask測試FusionCharts,並且當它用作純HTML和沒有Python代碼的JavaScript時,我無法使它工作。Fusion Charts not rendering

的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文件由哪個都是這樣

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是完全正確的控制檯看到日誌返回404。我不知道爲什麼它不渲染。請幫忙。

回答

2

data.xml未被檢索並放在瓶子模板渲染時間的圖表中。當加載fusion.js庫的客戶端調用圖表初始化時,會發出請求以檢索資源,因此應該可以從客戶端訪問。

data.xml是從客戶端無法訪問(因此404)(因爲它是在template/文件夾),並在此之上的路徑是錯誤的,因爲你可以在這裏看到:

... 
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相同的方式訪問它,它應該工作得很好。