ES6使用.mjs后缀导入失败,而MIME错误[英] es6 import using.mjs suffix fails with MIME error

问题描述

在最新的Chrome浏览器中

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

失败

无法加载模块脚本:服务器以非JavaScript Mime类型的""响应.每个HTML规格对模块脚本执行严格的MIME类型检查.

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

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

工作!

我正在使用Localhost路径和最新的Chrome的Mac OS X内置Apache Server.

因此,在浏览器中,ES6以某种方式对.mjs的首选节点.

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

是否有解决方案?

推荐答案

您需要使用以下HTACCESS指令的.htaccess文件或扩展Apache配置文件,以便服务器使用正确的MIME类型输出MJS扩展程序输出文件:

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

当然,mod_mime需要安装并启用以使其工作.

本文地址:https://www.itbaoku.cn/post/2419724.html