我使用express
使用es6模块为js文件提供页面。
关于es6模块 - https://jakearchibald.com/2017/es-modules-in-browsers/
我的server.js文件是 -
const app = express();
app.use( express.static( __dirname + '/src' ));
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname + '/index.html'));
});
app.listen(8080, () => console.log('Listening on port 8080!'));
我的index.html是 -
<html lang="en">
<body>
<script type="module" src="./src/test.js"></script>
</body>
</html>
在test.js
文件中我正在使用es6模块,因此脚本标记中为type="module"
。
但是当我在浏览器中提供此html时,test.js
脚本未加载。它给出了错误 -
Failed to load module script: The server responded with a non-JavaScript MIME type of "text/html". Strict MIME type checking is enforced for module scripts per HTML spec.
我尝试使用server.js
文件中的js文件添加mime类型 -
express.static.mime.define({'application/javascript': ['js']});
但结果仍然相同。我想我需要以某种方式从快递中为js文件发送mime / content-type,但是如何? 请帮忙。
答案 0 :(得分:1)
它需要一个装载路径。 { - 1}} -
'/src'
不确定为什么。将更新。
答案 1 :(得分:0)
内容类型应由文件扩展名自动确定。
<script type="module" src="./src/test.js"></script>
如果您不想在静态应用中将静态目录挂载到/src
,则可能需要从脚本路径中删除/src
。