Пользовательский простой HTTP-сервер Python, не обслуживающий файлы css

Я нашел написанный на python, очень простой http-сервер, метод do_get выглядит следующим образом:

def do_GET(self): try: self.send_response(200) self.send_header('Content-type', 'text/html') self.end_headers(); filepath = self.path print filepath, USTAW['rootwww'] f = file("./www" + filepath) s = f.readline(); while s != "": self.wfile.write(s); s = f.readline(); return except IOError: self.send_error(404,'File Not Found: %s ' % filepath) 

Он работает нормально, кроме того, что он не обслуживает никаких файлов css (он отображается без css). Кто-нибудь получил предложение / решение для этой причуды?

С уважением, praavDa

3 Solutions collect form web for “Пользовательский простой HTTP-сервер Python, не обслуживающий файлы css”

он, кажется, возвращает html mimetype для всех файлов:

 self.send_header('Content-type', 'text/html') 

Кроме того, это выглядит довольно плохо. Почему вас интересует этот сосательный сервер? Посмотрите на cherrypy или вставьте для хороших реализаций Python HTTP-сервера и хороший код для изучения.


EDIT : Попытка исправить это для вас:

 import os import mimetypes #... def do_GET(self): try: filepath = self.path print filepath, USTAW['rootwww'] f = open(os.path.join('.', 'www', filepath)) except IOError: self.send_error(404,'File Not Found: %s ' % filepath) else: self.send_response(200) mimetype, _ = mimetypes.guess_type(filepath) self.send_header('Content-type', mimetype) self.end_headers() for s in f: self.wfile.write(s) 

Вы явно обслуживаете все файлы как Content-type: text/html , где вам нужно обслуживать файлы CSS как Content-type: text/css . См. Эту страницу в CSS-Обсуждение Wiki . Веб-серверы обычно имеют таблицу поиска для сопоставления из расширения файла в Content-Type.

См. SimpleHTTPServer.py в стандартной библиотеке для более безопасной и надежной реализации, которую вы можете настроить, если вам нужно.

  • Захват всех данных заголовка HTTP в реальном времени
  • ResponseNotReady для действительно простого HTTP-запроса python?
  • Python: HTTP Опубликовать большой файл с потоковой передачей
  • Как поймать ошибку 404 в urllib.urlretrieve
  • urllib2.urlopen не может получить изображение, но браузер может
  • Запросы Python: получить атрибуты из возвращенной строки JSON
  • Библиотека или инструмент для загрузки нескольких файлов параллельно
  • Как я могу получить все заголовки запросов в Django?
  • Python - лучший язык программирования в мире.