2015-01-23 1 views
2

Я пытаюсь запустить веб-сервер python-simpleHTTP, который будет обслуживать один и тот же контент независимо от полученного запроса. В настоящее время, когда я пытаюсь сделать это, я получаю файл не найден 404.Служить одному и тому же содержимому независимо от запроса на получение в SimpleHTTPServer

Я попытался переопределить def list_directory(self, path): и пропустить его независимо, так как я думал, что это был класс, который потерпел неудачу, если запрос отсутствует на сервере , Правильно ли это переопределять, или есть еще что делать?

Я поместил метод list_directory в MyHandler, вот простой стартовый код HTTP-сервера.

Handler = MyHandler 
httpd = SocketServer.TCPServer(("", PORT), Handler) 
print "serving at port", PORT 
httpd.serve_forever() 
+0

'SocketServer.TCPServer' не является классом от Twisted. Вы уверены, что это вопрос о Twisted? – Glyph

ответ

1

Я понял. Исходный код является чрезвычайно полезным http://www.opensource.apple.com/source/python/python-3/python/Lib/SimpleHTTPServer.py

Вместо наиважнейшая list_directory, вы можете переопределить send_head() внутри обработчика с чем-то вроде этого:

def send_head(self): 
     """ 
     This sends the response code and MIME headers. 
     """ 
     path = THE FILE YOU WANT TO SERVE NO MATTER WHAT 
     f = open(path) 
     self.send_response(200) 
     ctype = self.guess_type(path) 
     self.send_header("Content-type", ctype) 
     self.end_headers() 
     return f 
Смежные вопросы