具有HTML和JS的Micropython Socket Server HTTP响应

问题描述

好,所以我正在使用使用micropython刷新的esp8266,并正在编写基于套接字的Web服务器。到目前为止,一切正常。当我在Web浏览器中转到正确的IP地址和端口组合时,我会从服务器收到HTTP响应,其中包括我期望的HTML。

这是我被困的地方。随着我的Web应用程序变得越来越复杂,我希望分离出HTML,JS和CSS文件,而不是在HTML中插入内联JS和CSS。但是,我无法弄清楚如何单独发送这些文件以供index.html文件引用。

我的非阻塞服务器如下所示:

def server_connect(server_socket):
    r,_,__,= select.select((server_socket,),(),0)
    if r:
        for _ in r:
            client,client_addr = server_socket.accept()
            try:
                print("\nConnected to client at {}".format(client_addr))
                request = client.recv(4096)
                print(request)
                print()

                try:
                    with open("index.html",'rb') as infile:
                        response_body = infile.read()
                except OSError:
                    response_body = b"No index file found..."

                try:
                    with open("test.js",'rb') as infile:
                        response_body_2 = infile.read()
                except OSError:
                    response_body_2 = b"No js file found."

                response_header = b"HTTP/1.0 200 OK\nContent-Type: text/html; encoding=utf8\n\n"

                client.send(response_header)
                client.sendall(response_body)
                client.sendall(response_body_2)
                client.close()
            
            except OSError:
                pass

可以看出,我只是将两个不同文件中的文本发送回客户端,结果是可预测的。我的网页显示了应设置格式的HTML,其后是纯文本的JS。

我的理解(尽管有限)是,对于典型的Web服务器,将响应多个请求而发送多个文件。因此,我的思考过程是我需要将HTML和JS文件发送回同一客户端的单独请求。因此,也许我的问题是我如何让客户端知道我还有其他文件要发送,以便客户端可以依次发出允许我的服务器发送这些文件的请求。

感谢您的帮助!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)