这就是我的项目的文件结构。语音、文本和模板是文件夹。你知道吗
我运行python app.py
,当我转到localhost http://0.0.0.0:8080/
时,我可以看到index.html
页面,其中的内容由app.py
传入。你知道吗
在index.html
中有一些文本是从voice.txt
传入的,如果我在我的文本编辑器中查看voice.txt
,我可以看到app.py
中的一个循环每20秒成功地向它追加更多的文本。你知道吗
我遇到的问题是试图将更新的voice.txt
文本放入index.html
的正文中。我正在尝试用XMLHttpRequest来实现这一点。以下是index.html
中标记的相关代码:
function UpdateText() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function(){
if (this.readyState == 4 && this.status == 200) {
// Code goes here
document.getElementById("main").innerHTML = this.responseText;
console.log(statusText);
console.log(responseText);
}
};
xhttp.open("GET", "../Text/voice.txt", true);
xhttp.send();
};
当我运行时,index.html
正确显示,但当它试图更新文本时,我在终端中得到以下错误消息:
127.0.0.1:64013 - - [28/May/2019 00:55:10] "HTTP/1.1 GET /Text/voice.txt" - 404 Not Found
我可能错了,但在这一点上,我相当确定xhttp.open()
中的文件路径实际上应该是一个URL(这是我第一次使用XMLHttpRequest,我看到的每个教程都只有文件名,没有其他内容),在这种情况下,我不确定如何链接到voice.txt
。我用的是网页.py对于这个库,这里是app.py
的相关部分:
urls = (
"/", "index",
)
indexpath = "/Users/[USERNAME]/torch/torch-rnn/voice/Template/"
render = web.template.render(indexpath)
class index(object):
def GET(self):
the_voice = open(voicepath, "r+").read()
return render.index(the_voice)
if __name__ == "__main__":
app = web.application(urls, globals())
app.run()
我觉得这个解决方案可能涉及到改变urls
或render
变量中的某些内容,但我已经在这个问题上绕了几个小时了,我已经没有主意了。你知道吗
我首先想到的是将一个名为voice.txt
的伪文件扔到index.html
旁边的模板文件夹中,然后更改XMLHttpRequest中的文件路径以反映这一点,但我仍然收到相同的错误消息。你知道吗
您的web服务器只有知道一个URL“
/
”,当被询问为“https://:8080/”时,它将返回该URL。这就是您在urls =()
位中列出的所有可能值。你知道吗所以,你试图通过web界面获取其他任何东西都会失败。如果您想让Web服务器检索您的语音.txt文件,您需要在
urls
中包含它或与之匹配的内容,然后让该类在voice.txt
文件上获取和发送。(请注意,文件本身不在Text
文件夹中,它们可以在任何地方,如myDirectory
所述。)例如
可能会做你想做的(或者给你一些想法)。通过使用
urls
中的正则表达式,任何http都像'/Text/foo','/Text'一样/语音.txt','/Text/ant_食客.jpg'将尝试读取文件('foo','语音.txt','蚂蚁_食客.jpg,并将该文件返回给用户。你知道吗如果您提供不同类型的文件(如我的示例所示),您还应该为内容类型设置标题,但这是另一个问题。你知道吗
相关问题 更多 >
编程相关推荐