我创建了一个小的python html服务器,但是我在发送外部css和javascript时遇到问题。 html传输应该和内联css工作正常。 chrome开发人员工具会响应此错误:
资源解释为样式表但使用MIME类型传输 text / plain:“http://localhost:8888/style.css”。
不幸的是,我不知道“MIME类型”是什么。
这是python代码:
# server.py
import socket
file = open('website/index.html', 'r')
def start_server(HOST, PORT):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((HOST, PORT))
s.listen(1)
print('Serving HTTP on port %s ...' % PORT)
while True:
client_connection, client_address = s.accept()
request = client_connection.recv(1024)
print(request.decode('utf-8'))
http_response = """\
http/1.1 200 OK
""" + file.read() + """
"""
client_connection.sendall(bytes(http_response, 'utf-8'))
client_connection.close()
答案 0 :(得分:2)
将此行添加到200 OK行正下方的响应字符串中:
Content-Type: text/css
正在发生的事情是Chrome正在尝试将您发送的HTML解释为您想要的样式表。但是,当你发送它时,你发送的内容标题是告诉chrome“我只是纯文本,这里没什么特别的!”所以Chrome就像,有点错误,我期待一个样式表,并抛出你看到的错误。如果您告诉Chrome您要向其发送样式表,则应该解决错误。
This is from Mozilla rather than Chrome, but it gives a good overview of MIME types.