【发布时间】:2020-05-11 12:25:36
【问题描述】:
加载模块脚本失败:服务器以“text/plain”的非 JavaScript MIME 类型响应。根据 HTML 规范对模块脚本强制执行严格的 MIME 类型检查。
尝试将此行添加到我的 HTML 代码后,我在 chrome 中收到此错误:
<script type="module">import * as hello from './__target__/hello.js'; window.hello = hello;</script>
<!-- From the official documentation of Transcrypt -->
我已经尝试修复了几个小时,有人建议将类型更改为 text/javascript 并使用 src 标记 (src = './__ target__/hello.js') 但我需要在 hello 中进行一些导入.js
已修复: 好的,我从命令行使用“python -m http.server”启动服务器,我只是用这个 python2 脚本替换了它:
#Use to create local host
import SimpleHTTPServer
import SocketServer
PORT = 8000
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
Handler.extensions_map.update({
".js": "application/javascript",
});
httpd = SocketServer.TCPServer(("", PORT), Handler)
print ("Serving at port", PORT)
print(Handler.extensions_map[".js"])
httpd.serve_forever()
【问题讨论】:
-
您显示的错误是服务器端错误:服务器应该告诉您的浏览器这是一个 js 文件,而不是纯文本文件。因此,首先将您的脚本放在一个文件中(不要内联它),然后使用
<script src="..." type="module"></script>链接到该 .js 文件。如果这产生相同的错误,则您的服务器没有发送具有正确 mime 类型的文件,您应该解决这个问题(几乎每个服务器都可以为您执行此操作,因此只需 google 了解如何配置您的正确添加 MIME 类型标题) -
您确定包含正确的文件吗?
-
我正在使用 python -m http.server 来尝试我的应用程序,我应该如何设置内容标题和 mime 类型?
-
@Mike'Pomax'Kamermans,在为 android 构建相同的应用程序后,我遇到了同样的问题,如果程序不在服务器上运行,我该如何更改 mime 类型?
标签: javascript html