2015-04-02 58 views
1

我有一種情況,用jinja2變量{{creditNumbers|safe}}替換url字符串"/CreditHistory/10216",會加載JavaScript文件。更具體地說,這是有效的;js腳本不加載在jinja2模板

{% block Scripter %} 

<script type="text/javascript" src="./static/assets/js/crossfilter/crossfilter.js"></script> 
<script type="text/javascript" src="./static/assets/js/d3/d3.js" charset="utf-8"></script> 
<script type="text/javascript" src="./static/assets/js/dc.js/dc.js"></script> 
<script type="text/javascript" src="./static/assets/js/queue/queue.js"></script> 
<script src='./static/assets/js/graphsFordringer.js' type='text/javascript' charset="utf-8"></script> 
<script type="text/javascript"> 

queue().defer(d3.json, "/CreditHistory/10216").await(makeGraphs); 

</script> 

{% endblock %} 

但是,這不;

{% block Scripter %} 

<script type="text/javascript" src="./static/assets/js/crossfilter/crossfilter.js"></script> 
<script type="text/javascript" src="./static/assets/js/d3/d3.js" charset="utf-8"></script> 
<script type="text/javascript" src="./static/assets/js/dc.js/dc.js"></script> 
<script type="text/javascript" src="./static/assets/js/queue/queue.js"></script> 
<script src='./static/assets/js/graphsFordringer.js' type='text/javascript' charset="utf-8"></script> 
<script type="text/javascript"> 

queue().defer(d3.json, "{{creditNumbers|safe}}").await(makeGraphs); 

</script> 

{% endblock %} 

在Web瀏覽器中引發的錯誤意味着沒有任何JavaScript文件被加載。其中之一就是例如該隊列不是定義的功能。 同樣顯而易見的是,"{{creditNumbers|safe}}"變量確實加載到"/CreditHistory/10216"。所以,簡而言之,變量加載似乎會中斷JavaScript加載。並不是說我找到了文檔中類似問題的參考,所以可能不是發生了什麼事情。

編輯:

現在看來,我誤解了整個情況。它看起來像是在app.py文件中聲明jinja2模板變量的方式,這是根本原因。

@app.route失敗的代碼是;

@app.route('/KundeFordringer/<int:KundeNr>') 
def fordringer(KundeNr): 

    jsonSti = "/CreditHistory/"+str(KundeNr) 
    return render_template("fordringer.html", creditNumbers=jsonSti) 

但是,如果我將代碼更改爲以下,它工作正常;

@app.route('/KundeFordringer') 
def fordringer(): 

    return render_template("fordringer.html", creditNumbers="/CreditHistory/10216") 

如前所述,觀看從web瀏覽器的源代碼,都可以看到使用第一@app.route聲明時,該"/CreditHistory/10216"加載。但顯然有些事情,從來沒有這樣做過,就這樣做。

任何幫助將不勝感激

+0

嘗試刪除'|安全' – doru 2015-04-02 12:44:14

+0

@doru,感謝您的建議,但現在看來我誤解了這個問題,並且問題來自'app.py'聲明,請參閱EDIT。 – Rookie 2015-04-02 14:37:45

+0

從chrome開發工具中檢查您的'