デフォルトでは、SimpleHTTPServer はindex.html
インデックス ファイルとして使用します。それらを無効にして、常にディレクトリ インデックスを表示したいと考えています。
どうやってやるの?ここのドキュメントはそれについて何も述べていません
デフォルトでは、SimpleHTTPServer はindex.html
インデックス ファイルとして使用します。それらを無効にして、常にディレクトリ インデックスを表示したいと考えています。
どうやってやるの?ここのドキュメントはそれについて何も述べていません
インデックス ファイルの名前を別の名前に変更します
SimpleHTTPRequestHandlerのtranslate_pathメソッドを次のようにオーバーライドする必要があります。
import BaseHTTPServer
import SimpleHTTPServer
server_address = ("", 8888)
PUBLIC_RESOURCE_PREFIX = '/public'
PUBLIC_DIRECTORY = '/path/to/protected/public'
class MyRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
def translate_path(self, path):
if self.path.startswith(PUBLIC_RESOURCE_PREFIX):
if self.path == PUBLIC_RESOURCE_PREFIX or self.path == PUBLIC_RESOURCE_PREFIX + '/':
return PUBLIC_DIRECTORY + path[len(PUBLIC_RESOURCE_PREFIX):]
else:
return SimpleHTTPServer.SimpleHTTPRequestHandler.translate_path(self, path)
httpd = BaseHTTPServer.HTTPServer(server_address, MyRequestHandler)
httpd.serve_forever()
send_head
メソッドを上書きする必要があります
次の行を無効にするだけです
for index in "index.html", "index.htm":
index = os.path.join(path, index)
if os.path.exists(index):
path = index
break