首页 > 解决方案 > html对css没有影响

问题描述

我有一个使用 Python Socket 制作的简单 Web 服务器。该服务器的模板文件夹中只有两个文件,“home.html”和“home.css”。但是当我访问 home.html 时,我的 home.css 文件没有任何效果。我检查了 Microsoft Edge 的 DevTools,它显示了一个黑色的 home.css 文件。

我的文件夹:

Website
   - server.py
   - templates
       - home.html
       - home.css

home.html 代码:

<!DOCTYPE html>
<html>
<head>
    <title>TITLE</title>
    <link rel="stylesheet" type="text/css" href="home.css">
</head>
<body>
    <div class="header">
        <h1>title name</h1>
    </div>
    <div class="body_container">
        <p>This is body..</p>
    </div>
</body>
</html

home.css 代码:

body{
    background-color: gray;
}

服务器.py:

import time
import socket
import threading

class WebServer():
    def __init__(self):
        self.host = "192.168.0.101"
        self.port = 80
        self.content_dir = 'templates'

    def _generate_headers(self, response_code):
        header = ''
        if response_code == 200:
            header += 'HTTP/1.1 200 OK\n'
        elif response_code == 404:
            header += 'HTTP/1.1 404 Not Found\n'

        time_now = time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())
        header += 'Date: {now}\n'.format(now=time_now)
        header += 'Server: Orasae\n'
        header += 'Connection: close\n\n' # Signal that connection will be closed after completing the request
        return header

    def handle_client(self, conn, addr):
        """
        Handles Client Connection and Serves Files From self.content_dir.

        parameters:
            - conn: Client Socket Object from self.server.accept();
            - addr: Client Address from self.server.accept();
        """
        PACKET_SIZE = 1024
        CONNECTION = True

        while CONNECTION:
            data = conn.recv(PACKET_SIZE).decode() # Receive Data From Client and Decode it.
            if not data:
                CONNECTION = False

            response = self._generate_headers(200).encode()
            
            directory = data.split(" ")[1] # gets directory for requested file
            
            if directory == '/' or directory == '/home':
                f = open(f"{self.content_dir}/home.html", 'rb')
                htmlCode = f.read()
                f.close()

                response += htmlCode

            conn.send(response)
            conn.close()
            CONNECTION = False


    def _listen(self):
        """
        Listens For Any Connection on self.port and Calls self.handle_client For
        Handling Client Request/Respond. 
        """
        self.server.listen(1)
        while True:
            conn, addr = self.server.accept()
            threading.Thread(target=self.handle_client, args=(conn, addr)).start()

    def start(self):
        """
        Attempts to create and bind to a socket to launch it.
        """
        self.server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        try:
            print(f"Starting Server on {self.host}:{self.port}")
            self.server.bind((self.host, self.port))
            print(f"Started Server on {self.host}:{self.port}")
        except:
            print(f"[ERROR] Couldn't Start Server on port {self.port}")

        self._listen()

感谢您的帮助!

标签: pythonhtmlcsssocketsnetworking

解决方案


试试这样:

html,body{background-color:#ccc}

或者只是测试目的尝试

<body bgcolor="black">

推荐阅读