Пользовательский простой 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 в стандартной библиотеке для более безопасной и надежной реализации, которую вы можете настроить, если вам нужно.

  • Каков самый быстрый способ отправки 100 000 HTTP-запросов в Python?
  • Что делать, если функция socket.setdefaulttimeout () не работает?
  • Глобальный обработчик ошибок для любого исключения
  • Получение данных формы из html-формы с использованием фляжки и питона
  • Ошибка Django HTTP 500
  • Создайте HTTP-запрос GET с номером и параметрами порта
  • Лучший способ анализа строки запроса URL
  • Как создать 303 Http-ответ в Django?
  • Прослушивание ответов HTTP
  • Как я могу получить все заголовки запросов в Django?
  • Python - поиск в потоке ответов HTTP
  • Python - лучший язык программирования в мире.