当前位置: 首页 > Web前端 > vue.js

加载MIME类型为“application-octet-stream”的.mjs文件的解决方案

时间:2023-03-31 17:32:26 vue.js

关于浏览器控制台错误xxx.mjs文件加载模块脚本失败:需要一个JavaScript模块脚本,但服务器响应的MIME类型为“application”/八位字节流”。根据HTML规范对模块脚本执行严格的MIME类型检查。问题的解决这是我第一次遇到这个问题。使用nuxt3进行静态打包并使用Nginx部署后,浏览器控制台报错:.mjsFailedtoloadmodulescript:ExpectedaJavaScriptmodulescriptbuttheserverrespondedwithaMIMEtypeof"application/octet-stream".根据HTML规范对模块脚本执行严格的MIME类型检查。通过尝试了很多途径和方法,有一天早上突然想到会不会是Nginx的问题,然后通过关键字Nginx和mjs找到了类似的情况和解决方法。原因是nginx无法识别mjs文件,所以错误的使用了http头中的Content-Type:application/octet-stream来传输mjs文件,导致浏览器认为不是合法的js脚本方案。修改nginx的MIME类型文件,修改对应MIME类型与mjs的映射,操作如下:进入nginx配置文件,发现mimetype文件路径为/etc/nginx/mime.types打开mime.types文件sudovim/etc/nginx/mime.types找到如下配置Contentapplication/javascriptjs;将其更改为application/javascriptjsmjs;然后重启Nginxsudonginx-sreload再次访问,发现网页不报错,可以正常运行(如果还是报错,尝试强制刷新或者清除缓存再试)为什么你需要再试一次吗?发表文章?第一次遇到这种问题,最直接的方法就是用百度和谷歌直接在百度上搜索浏览器的错误信息。查到的结果都是关于Vue的打包配置错误或者其他不匹配的问题。我有一个类似的问题和解决方法,避免以后遇到类似问题的同学因为搜索关键词错误找不到答案而浪费时间,所以换个标题再发一次。链接到解决方案的原文!https://blog.51cto.com/u_1305…