html 加载模块脚本失败:服务器以非JavaScript MIME类型“text/plain”响应

91zkwejq  于 2023-01-28  发布在  Java
关注(0)|答案(5)|浏览(488)

加载模块脚本失败:服务器以非JavaScript MIME类型"text/plain"响应。根据HTML规范,对模块脚本强制执行严格的MIME类型检查。
我得到这个错误在chrome后,试图添加此行到我的HTML代码:

<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()
disho6za

disho6za1#

这个问题(以及涉及的脚本)确实帮了我很大的忙,我已经修改了答案中提供的脚本,使其与python3兼容。

#Use to create local host
import http.server
import socketserver

PORT = 1337

Handler = http.server.SimpleHTTPRequestHandler
Handler.extensions_map.update({
      ".js": "application/javascript",
});

httpd = socketserver.TCPServer(("", PORT), Handler)
httpd.serve_forever()

值得注意的改变包括:
1.已将SimpleHTTPServer更改为http.server。从python3开始,SimpleHTTPServer已成为http.server的一部分
1.已将套接字服务器模块更改为套接字服务器
这些函数向后兼容。

vdzxcuhz

vdzxcuhz2#

您的Web服务器正在使用Content-Type: text/plain服务hello.js,这是浏览器不允许的,因为它不是JavaScript。
您需要更新Web服务器配置,以便它使用Content-Type: application/javascript服务该文件(可能还有所有*.js文件)。

mqxuamgl

mqxuamgl3#

另一种选择是将Javascript文件重命名为*.mjs,而不是*.jshttps://github.com/python/cpython/issues/75896

f87krz0w

f87krz0w4#

在我的例子中(Windows 10 + Django 2.2.25),它是Windows注册表Computer\HKEY_CLASSES_ROOT. js有一个内容类型键设置为text/plain。将其更改为application/javascript,它再次工作。Django使用view.py和static.py来提供使用mimetype(来自Python库)的静态文件(static.serve)。mimetype.py调用mimetypes.guess_type()

smdnsysy

smdnsysy5#

我用IIS托管我的Angular 编译网站,不得不将.js文件中的mime类型从application/javascript更改为text/javascript,然后由于某种原因它工作了。

相关问题