引入外部JS文件动态创建HTML元素时出现MIME type冲突如何解决
这个报错和<script>标签的type属性配置无关,核心原因是你使用的本地Web服务器返回sectionCreator.js资源时,响应头的Content-Type值错误:
服务器找不到对应js文件时会返回404页面,404页面的MIME类型为text/html,再加上响应头携带了X-Content-Type-Options: nosniff参数,浏览器会直接拒绝将html内容识别为JS执行,触发报错。
解决步骤:
- 先确认文件路径:你在
<script>里写的src="./sectionCreator.js"代表js文件需要和当前HTML文件存放在同一级目录下,检查是否出现以下问题:- 文件名拼写错误,包括大小写不匹配
- 文件后缀被隐藏,实际是
sectionCreator.js.txt - 文件被放在了子文件夹内,没有对应修改src路径
- 路径确认无误后重启本地服务:你用的5501端口默认是VSCode的Live Server插件,重启插件即可解决偶发的静态资源识别异常;如果是自建的Nginx/Apache等服务,需要配置静态资源MIME映射,确保
.js后缀文件返回的Content-Type为application/javascript - 验证方法:直接在浏览器地址栏输入
http://127.0.0.1:5501/sectionCreator.js,如果能正常显示你写的JS代码说明配置生效,如果出现404页面则说明文件路径仍有问题。
额外提示:你提供的HTML代码末尾多了一个冗余的</div>标签,建议删除避免页面渲染异常。
内容的提问来源于stack exchange,提问作者Maximilian Hogger
相关产品推荐
相关产品推荐

