Flutter Web运行报错:main.js因MIME类型不匹配无法执行求助
问题原因分析
- 浏览器报错的核心是:请求
main.js时,服务器找不到该文件,返回了HTML格式的404响应,导致MIME类型为text/html,不符合脚本文件的类型要求,触发严格MIME类型检查报错。 - 查看你的
web/index.html代码,发现存在两个无效脚本引用:main.js:Flutter Web编译后生成的入口脚本是main.dart.js,而非main.jsjsapi.js:该文件未在提供的信息中提及存在,属于无效引用
解决方案
修改web/index.html中的脚本引用部分,移除不存在的main.js和jsapi.js,保留正确的main.dart.js以及PDF相关脚本即可,修改后的代码如下:
<!DOCTYPE html> <html> <head> <base href="/"> <meta charset="UTF-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="description" content="Test page"> <!-- Favicon --> <link rel="icon" type="image/png" href="favicon.png"/> <title>Title page</title> <link rel="manifest" href="manifest.json"> </head> <body> <script src="https://cdn.jsdelivr.net/npm/pdfjs-dist@2.12.313/build/pdf.js" type="text/javascript"></script> <script type="text/javascript"> pdfjsLib.GlobalWorkerOptions.workerSrc = "https://cdn.jsdelivr.net/npm/pdfjs-dist@2.12.313/build/pdf.worker.min.js"; pdfRenderOptions = { cMapUrl: 'https://cdn.jsdelivr.net/npm/pdfjs-dist@2.12.313/cmaps/', cMapPacked: true, } </script> <script src="main.dart.js" type="application/javascript"></script> </body> </html>
验证步骤
- 保存修改后的
index.html - 重新运行Flutter Web应用:
flutter run -d chrome - 检查浏览器控制台是否还有MIME类型相关报错
内容的提问来源于stack exchange,提问作者Martijn van der Laan
相关产品推荐
相关产品推荐

