如何在python http.server上使用ES6模块?

时间:2020-07-30 05:32:41

标签: javascript python server

我正在index.html中实例化一个模块:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Hello Module</title>
  </head>
  <body>
    <script type="module" src="./index.js"></script>
  </body>
</html>

index.js为空。

当我通过py -3 -m http.server(Python 3.8.5)提供此服务时,出现Chrome错误:

Failed to load module script: The server responded with a non-JavaScript MIME type of "text/plain". Strict MIME type checking is enforced for module scripts per HTML spec.

我已经阅读了此错误的含义。我不知道如何配置http.server,因为在此之前它对我来说是一个黑匣子。我是否超出了Python的默认(?)服务器的作用?

1 个答案:

答案 0 :(得分:1)

JavaScript应该与内容类型text/javascript一起使用。

The default http.server.SimpleHTTPRequestHandler handler可能没有(因为可以从Windows注册表中读取映射)具有.js扩展名到文件类型的映射,或者可能是错误的(从{{1}中可以看出) }。

您需要编写自己的简短脚本来修补text/plain扩展名,并使用它代替.js,例如:

python -m http.server