[英]Python HTTP Server Serves Two Paths Using Different Kinds of Handlers
[英]Python HTTP Server serves only one file
我正在尝试使用 python HTTPServer 创建一个网站,我知道我可以使用任何框架,如 flask 或 Django,但我不想。
python 代码为:
from http import server
from http.server import HTTPServer, BaseHTTPRequestHandler
import json
# importing all the modules
with open('settings.json', 'r') as json_file:
setting = json.load(json_file)
port = setting['port']
start_at = setting['start_at']
# loading settings
class Serv(BaseHTTPRequestHandler):
def do_GET(self):
try:
file_to_open = open(start_at).read()
self.send_response(200)
except:
file_to_open = "File not found"
self.send_response(404)
self.end_headers()
self.wfile.write(bytes(file_to_open, 'utf-8'))
def start_server():
"""
Starts the server
"""
try:
server = HTTPServer(('', port), Serv)
print(f"[SERVER] Starting the server at port {port}")
server.serve_forever()
except KeyboardInterrupt:
print(f"[CLOSING] Closing the editor, see you again next time...")
if __name__ == "__main__":
start_server()
当我尝试提供它时,index.html 文件可以正常工作,但图标和 js 文件无法正常工作。 我知道我可以使用python -m http.server
但我不喜欢。
我会给一些截图图片
app.js 在 HTML 中显示相同的代码,但实际上,我没有向 javascript 文件写入任何内容
这可能有助于您的回答: Python 3 中的服务目录
正如其他人所说,看起来您正在打开同一个文件。 要服务器其他文件,您需要解析self.path
并基于此打开。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.