我有这个复杂的问题,我无法找到答案。
我运行的是一个运行Python HTTPServer的网页。这些网页是在Beautiful Soup的帮助下在运行时创建的。问题是Firefox显示网页的HTML代码而不是实际页面?我真的不知道是谁造成了这个问题 - - Python HTTPServer - 美丽的汤 - HTML代码
无论如何,我复制了部分网页HTML: -
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>
My title
</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<script src="./123_ui.js">
</script>
</head>
<body>
<div>
Hellos
</div>
</body>
</html>
只是为了帮助你,以下是我已经尝试过的事情 - - 我确保Python HTTPServer将MIME标头作为text / html发送 - 只需复制和粘贴HTML代码就会显示正确的页面作为静态页面。我可以从这里看出问题出在HTTPServer端 - Firebug显示为空并且“此元素没有样式规则。您可以为它创建规则。”显示
我只是想知道错误是在Beautiful Soup还是HTTPServer或HTML?
谢谢, 阿米特
答案 0 :(得分:2)
为什么要在文档顶部添加它?
<?xml version="1.0" encoding="iso-8859-1"?>
这将使浏览器认为整个文档是 XML 而不是 XHTML 。删除该行应该使其正确呈现。我假设Firefox正在显示一个包含大量元素的页面,您可以展开/折叠它们以查看XML文档通常的内容,即使HTTP标头可能会说它是text / html。
答案 1 :(得分:0)
所以伙计们, 我终于解决了这个问题。原因是因为我没有发送内容类型为“text / html”的MIME标题(即使我认为我是)
在python HTTPServer中,在将任何内容写入文件之前,您总是这样做: -
self.send_response(301)
self.send_header("Location", self.path + "/")
self.end_headers()
# Once you have called the above methods, you can send the HTML to Client
self.wfile.write('ANY HTML CODE YOU WANT TO WRITE')