我是由Flask创建的Web应用程序。我通过javascript从xml文件中读取数据。它运行得很棒但是当我在apache上部署我的烧瓶应用程序时,我遇到了读取当前数据的问题。如果我在apache上更改xml文件中的某些数据,我只能看到旧数据。什么都没发生。仅当我重新启动apache服务器时,网页上的数据才会更改。怎么了 ?我尝试了很多可能性如何解析XML数据,例如ajax。
function ReadTemperatureFromxXML() {
var xmlDoc;
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", "data.xml", false);
xmlhttp.send();
var xmlDoc = xmlhttp.responseXML;
if (!xmlDoc) {
xmlDoc = (new DOMParser()).parseFromString(xmlhttp.responseText, 'text/xml');
var emp = xmlDoc.getElementsByTagName("temperature");
var temperature1 = emp[0].getElementsByTagName("value")[0].firstChild.data;
temperature1 = temperature1.concat("°C")
document.getElementById("temperature1").innerHTML = temperature1;
....
}
ajax阅读代码
/* $.ajax({
url: 'data.xml',
dataType: 'xml',
success: function(data){
$(data).find('data temperature').each(function()
{
var temperature = $(this).find('value').text();
$('.timeline').append(
$('<li />',{
text: temperature
})
);
});
},
error: function() {
$('.timeline').text('Failed to get')
}
}) * /
设置apache服务器
WSGIDaemonProcess FlaskApp user=pi group=www-data threads=5
WSGIScriptAlias / /home/pi/Kotelna/kotelna.wsgi
<Directory /home/pi/Kotelna>
WSGIProcessGroup FlaskApp
WSGIScriptReloading On
WSGIApplicationGroup %{GLOBAL}
Require all granted
</Directory>
Alias /static/ /home/pi/Kotelna/static/
<Directory /home/pi/Kotelna/static/>
WSGIScriptReloading On
Order allow,deny
Allow from all
</Directory>
当你鼠标移过“)! 这也适用于reference links。
Errorlog ${APACHE_LOG_DIR}/error.log
通过我的网络浏览器,我看到网络,我可以看到xml文件的reguest。 控制台的错误列表与错误日志文件apache一样清晰。 我尝试像这样改变apache2.conf
<Directory />
Header set Access-Control-Allow-Origin "*"
</Directory>
有可能解决这个问题吗?或者有没有其他方法如何读取xml文件?谢谢你的回复。
答案 0 :(得分:0)
是的,也许我错误地使用Ajax,但它工作得很好。我的问题是烧瓶,因为我需要重新加载我的data.xml .....我才使用这个命令
@app.route('/data.xml')
def data():
return render_template('/data.xml')
现在我用
@app.route('/data.xml')
def data():
return send_from_directory("templates", "data.xml")
只有当我转到localhost / data.xml时才重新加载我的xml文件 还有其他命令吗?解决了我的问题。有些东西是按时间自动加载的。谢谢你的回复