[英]Flask's render_template() issue
我正在使用Flask Web應用程序。
要訪問內容和功能,您需要登錄。
但是,有些人,在登錄后,而不是加載完整的主頁,加載一個空白的“about:srcdoc”頁面。
我在整個主路由功能中放置了print語句,現在我知道這個錯誤只發生在返回render_template()開始運行之后(在render_template發送get請求之后,根據命令提示符)。
base.html文件:
<html>
<head>
<title>Veritas Annotator</title>
</head>
<body>
<script src="https://code.jquery.com/jquery-3.4.1.js" integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU=" crossorigin="anonymous"></script>
{%if session['logged_in']%}
<div><h4><a href="/">Annotator</a> | Logged in as "{{ session['username'] }}" | <a href="/logout">Logout</a></h4></div>
<hr>
{%else%}
<div><h4><a href="/register">Register</a> | <a href="/login">Login</a></h4></div>
<hr>
{%endif%}
{% block content %}{% endblock %}
<style>
body{
margin: 0;
padding: 0;
}
.column{
width: 40%;
padding: 10px;
}
.left{
float: left;
}
.right{
float: right;
}
.row:after {
content: "";
display: table;
clear: both;
}
h4 {
color: black;
text-align: center;
font-family: Arial;
font-size: 20px;
vertical-align: bottom;
}
</style>
</body>
</html>
index.html(為清晰起見縮寫):
{% extends "base.html" %}
{% block content %}
{% if not session['logged_in'] %}
<h4>Please, log in to annotate.</h4>
{% else %}
{% if t1,t2 %}
<meta name="viewport" content="width=device-width, initial-scale=1">
<div class="row" style="width: 100%; height: 80%; min-height: 600px;">
<div class="column left" style="width:50%; position: relative; display: inline-block; margin: 0; border: 0; padding: 0;">
<iframe id="cframe" style="display: block" width="100%" height="100%" srcdoc="{{t1}}"></iframe>
</div>
<div class="column right" style="width:50%; position: relative; display: inline-block; margin: 0; border: 0; padding:0;">
<iframe id="oframe" style="display: block" width="100%" height="100%" srcdoc="{{t2}}"></iframe>
</div>
</div>
{% endif %}
{% endif %}
{% endblock %}
Python代碼段(為清晰起見,變量較少):
return render_template('index.html', t1=c_body, t2=o_body)
其中c_body,o_body都是使用selenium的browser.page_source檢索的頁面源
根據命令提示符,在該錯誤之前發生的最后一件事是(請注意,這不是錯誤之前的http代碼,有時它是代碼200而不是404):
"GET /api-proxy/-/locale_data/rendr-fe/de-DE/bbd065fad57e0e1eeb40f4f3d5045acf_b8cf454f8216fc48b02d6b403858fbbe2fa3ef36.js HTTP/1.0" 404 -
如果有人知道該請求的含義或之前遇到過這個問題,我將非常感謝您的幫助。 我一直在網上看了幾天,但我似乎找不到任何消息來源解釋發生了什么。
EDIT1:這里的完整代碼=> https://github.com/MohamedMoustafaNUIG/AnnotatorVM
編輯2:如果您認為我應該在問題中包含其他一些信息,請隨意提及(即使您不知道解決方案)。 在沒有解決這個問題的情況下,該應用程序的穩定性不足以釋放意味着需要3周以上的努力。
EDIT3:打開的“about:srcdoc”頁面的html:
<html>
<head></head>
<body></body>
</html>
並且沒有控制台消息(在開發工具中)
似乎iframe中的一些組件正在將父級導航到about:scrdoc
我需要做的就是為iframes添加sandbox屬性並僅限制頂部導航。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.