Только Firefox отображает HTML-код, а не страницу

У меня сложная проблема, на которую я не могу найти ответ.

У меня работает Python HTTPServer, который обслуживает веб-страницы. Эти веб-страницы создаются во время выполнения с помощью Beautiful Soup. Проблема в том, что Firefox показывает HTML-код для веб-страницы, а не саму страницу? Я действительно не знаю, кто вызывает эту проблему - Python HTTPServer - Beautiful Soup - HTML Code

В любом случае, я скопировал части 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 в виде текста/html - Простое копирование и вставка HTML-кода покажет вам правильную страницу как ее статическую. Отсюда я могу сказать, что проблема на стороне HTTPServer - Firebug показывает, что он пуст, и «Этот элемент не имеет правил стиля. Вы можете создать для него правило». отображается

Я просто хочу знать, в чем ошибка: Beautiful Soup, HTTPServer или HTML?

Спасибо, Амит


person abarik    schedule 17.11.2011    source источник


Ответы (2)


Почему вы добавляете это вверху документа?

<?xml version="1.0" encoding="iso-8859-1"?>

Это заставит браузер думать, что весь документ представляет собой XML, а не XHTML. Удаление этой строки должно привести к правильному отображению. Я предполагаю, что Firefox отображает страницу с кучей элементов, которые вы можете развернуть/свернуть, чтобы увидеть содержимое, как обычно для XML-документа, даже если в заголовках HTTP может быть указано, что это text/html.

person animuson    schedule 17.11.2011
comment
Нет нужды в том, что вы говорите. Хорошо, я удалил его, и он все тот же. У меня такая же проблема с тегом xml или без него. - person abarik; 18.11.2011
comment
У вас есть это где-нибудь в Интернете, чтобы мы могли посмотреть на него? - person animuson; 18.11.2011
comment
Итак, ребята, я наконец-то решил эту проблему. Причина заключалась в том, что я не отправлял заголовок MIME (хотя я думал, что отправлял) с типом содержимого text/html. В python HTTPServer перед записью чего-либо в файл вы всегда делаете следующее: Location, self.path + /) self.end_headers() # После того, как вы вызвали вышеуказанные методы, вы можете отправить HTML-код клиенту self.wfile.write('ЛЮБОЙ HTML-КОД, КОТОРЫЙ ВЫ ХОТИТЕ НАПИСАТЬ') - person abarik; 18.11.2011
comment
Извините... но у меня нет его в сети из-за политики компании... В любом случае, я решил проблему... спасибо за помощь - person abarik; 18.11.2011

Итак, ребята, я наконец-то решил эту проблему. Причина была в том, что я не отправлял заголовок MIME (хотя я думал, что это так) с типом контента "text/html"

В 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')
person abarik    schedule 18.11.2011