我正在构建一个Web应用程序,它将搜索我的.feature文件(这是常规文本文件)并显示其路径以及内容。我正在使用Python和Flask。我在网上搜索了显示文件内容的方法,正如你从源头上看到的,我发现了5种方法。但是结束html页面将文件内容呈现为空框。我知道文件路径是正确的,因为当我进入一个乱码路径时,我收到了这个元素的“未找到”。我怀疑这是一个安全问题。 模板的源代码:
<html>
<head>
<title>Available scenarios</title>
<link rel="stylesheet" href="/static/css/styles.css">
</head>
<body>
<!--<h1>Available scenarios:</h1>-->
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for names.." title="Type in a name">
<form id="scenarios_form" action="/run_tests.html" method="post">
<input type="submit" value="Run">
<table id="myTable">
<tr class="clickable"><td colspan="2">Available scenarios:</td></tr>
{% for scenario in scenarios %}
<tr><td><label><input name="selected_features" type="checkbox" value="{{ scenario }}"> {{ scenario }}</label></td></tr>
<tr><td><embed src="{{ scenario }}" /></td></tr>
<!--<tr><td><a href="file:///{{ scenario }}">Link</a></td></tr>-->
<!--<tr><td><object data="{{ scenario }}"></object></td></tr>-->
<!--<tr><td><iframe src="{{ scenario }}"></iframe></td></tr>-->
<!--<tr><td><a href="{{ scenario }}" target="_blank">Click To View</a></td></tr>-->
{% endfor %}
</table>
</form>
<script>
function myFunction() {
var input, filter, table, tr, td, i;
input = document.getElementById("myInput");
filter = input.value.toUpperCase();
table = document.getElementById("myTable");
tr = table.getElementsByTagName("tr");
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td")[0];
if (td) {
if (td.innerHTML.toUpperCase().indexOf(filter) > -1) {
tr[i].style.display = "";
} else {
tr[i].style.display = "none";
}
}
}
}
</script>
</body>
有没有办法 工作或我需要在后端做所有事情并将文本发送到模板? 每个浏览器的行为都是一致的,控制台中没有错误。