繁体   English   中英

Python HTTP 服务器只服务一个文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM