es6导入using.mjs后缀失败并出现MIME错误

时间:2019-05-05 18:56:12

标签: javascript ecmascript-6 import module

在最新的chrome浏览器中

import foo from '../dist/foo.mjs'

失败

  

无法加载模块脚本:服务器以非JavaScript MIME类型“”响应。根据HTML规范对模块脚本强制执行严格的MIME类型检查。

但是如果我将文件复制到foo.js

import foo from '../dist/foo.js'

有效!

我正在使用具有本地主机路径和最新chrome的mac os x内置Apache服务器。

因此es6导入在浏览器中对.mjs的首选节点后缀敏感。

导入是带有<script type="module">的html文件,而不是单独的模块文件,但是我怀疑这是问题所在。

对此有解决方案吗?

1 个答案:

答案 0 :(得分:0)

您需要使用一个.htaccess文件或使用以下htaccess指令扩展您的Apache配置文件,以便服务器输出具有正确MIME类型的mjs扩展名的文件:

<IfModule mod_mime.c>
  AddType text/javascript js mjs
</IfModule>

当然,需要安装mod_mime并使其启用。