已阻止加载“http://localhost:8086/xxx.js”的模块,它使用了不允许的 MIME 类型 (“text/plain”)。

记录今天解决的一个小bug

在终端启动8080端口号监听后,打开网址http://localhost:8080,发现不能正确加载页面,打开检查-控制台,出现如下警告:已阻止加载"http://localhost:8086/xxx.js"的模块,它使用了不允许的 MIME 类型 ("text/plain")。

问题的根本原因是静态文件的 MIME 类型错误 。由于使用的是 Python 的 http.server 来提供文件,它默认将 .js 文件的 MIME 类型设为 text/plain,导致浏览器拒绝加载这些文件。

在网上找了一些方法试了没用,借助gpt,发现可以通过手动设置 Python 服务器的 MIME 类型,但是不太推荐。

1.创建如下代码,如a.py

python 复制代码
import http.server
import socketserver
import mimetypes

PORT = 8086
DIRECTORY = "."

class Handler(http.server.SimpleHTTPRequestHandler):
    def end_headers(self):
        self.send_header("Cache-Control", "no-store")
        super().end_headers()

    def guess_type(self, path):
        # Ensure .js files are served with the correct MIME type
        if path.endswith(".js"):
            return "application/javascript"
        return super().guess_type(path)

with socketserver.TCPServer(("", PORT), Handler) as httpd:
    print(f"Serving at port {PORT}")
    httpd.serve_forever()
  1. 进入a.py的目录,并运行这个脚本

python custom_http_server.py

3。重新打开浏览器,成功加载

相关推荐
dog25020 分钟前
写一个时延固定的拥塞控制
网络
酣大智41 分钟前
华为 VRRP的抢占延迟时间
网络·tcp/ip·vrrp
那年窗外下的雪.1 小时前
第 02 天:Linux 权限、inode、目录项与链接
学习·http
hengmeida1 小时前
楼宇控制柜标准化项目交付完整规范
大数据·网络·笔记
2501_937860941 小时前
上篇:网络编程基础与UDP套接字编程
java·网络·计算机网络
那年窗外下的雪.2 小时前
AIDC 学习日志|第 27 天|EVPN 多归属收敛时间线与 Leaf2 接管验证
网络协议·学习·http·tcpdump
xixiaoyunya2 小时前
制造业生产数据备份:在“不停产“前提下的自动化实践
网络·安全
Figo_Cheung2 小时前
Figo权重动力学:递归本体论与跨尺度演化的形式化基础——揭示:宇宙的演化,本质上就是一场由无数观测者共同参与的、永不停歇的、跨尺度的权重重构盛宴。
网络·人工智能·量子计算
j7~2 小时前
【Linux】三十八.C++ 手写 HTTP 服务器:裸 socket + fork 多进程,从 HTTP 报文解析到浏览器打开网页
linux·网络·网络协议·学习·http·网络编程
FW-Linker2 小时前
偏远山区户外直播网络优化:多链路聚合如何保障稳定低时延传输
网络·5g·智能路由器