2015-04-02 3 views
1

У меня возникла ситуация, когда, заменяя строку url "/CreditHistory/10216" с переменной jinja2 {{creditNumbers|safe}}, беспорядок загружает файлы 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 %} 

Ошибки, которые попадают в веб-браузер, подразумевают, что ни один из файлов javascript не загружается. Одним из них является, например, то, что очередь не является определенной функцией. Также очевидно, что переменная "{{creditNumbers|safe}}" загружается до "/CreditHistory/10216". Итак, короче говоря, переменная загрузка, похоже, нарушает загрузку javascript. Не то, чтобы я нашел ссылку на подобные проблемы в документации, так что, вероятно, это не то, что происходит.

EDIT:

Теперь кажется, что я неправильно понял всю ситуацию. Похоже, что шаблон шаблона jinja2 объявлен в файле app.py, что является основной причиной.

Код ошибки @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") 

Как уже упоминалось ранее, просмотр исходного кода с помощью веб-браузера, то можно увидеть, что "/CreditHistory/10216" был загружен при использовании первого @app.route декларации. Но, видимо, что-то есть, тем не менее, с этим путем.

Любая помощь будет принята с благодарностью

+0

Попробуйте удалить '| safe' – doru

+0

@doru, спасибо за предложение, но теперь кажется, что я неправильно понял проблему и что проблема связана с объявлениями 'app.py', см. EDIT. – Rookie

+0

Что вы видите при проверке '

Смежные вопросы