目前,如果我转到"http://localhost:8035/",我可以看到并访问所有文件,包括根目录、client_files目录和server_files目录(即我可以访问所有文件、文件夹及其所有子目录等)。
目标:我希望将文件访问限制为只访问client_files目录中的文件。有没有办法用我现有的代码做到这一点?
当前目录结构:

当前代码(run_server.py -位于根目录):
from http.server import HTTPServer, SimpleHTTPRequestHandler
class CORSRequestHandler(SimpleHTTPRequestHandler):
def end_headers(self):
self.send_header('Access-Control-Allow-Origin', '*')
self.send_header('Access-Control-Allow-Methods', 'GET')
self.send_header('Cache-Control', 'no-store, no-cache, must-revalidate')
return super(CORSRequestHandler, self).end_headers()
def func_run_server(url, port):
httpd = HTTPServer((url, port), CORSRequestHandler)
httpd.serve_forever()
func_run_server('localhost', 8035)发布于 2019-02-01 02:00:57
SimpleHTTPRequestHandler为运行服务器的目录下的目录堆栈提供服务。最简单的解决方案是
import os
curD = os.path.dirname(os.path.abspath(__file__))
os.chdir(os.path.join(curD, “client_files”))在启动服务器之前。额外的好处:你可以从任何地方运行这个脚本,它不会对启动它的目录敏感。
https://stackoverflow.com/questions/54465988
复制相似问题