【Bug收集箱 · 前端】Vite报错:Failed to load module script: Expected a JavaScript module script but the...

本文解决了一个常见的Vite打包问题:网页加载时出现白屏且控制台提示MIME类型错误。通常此问题出现在使用Python内置服务器进行本地开发时。文章提供了简单的解决方案:将项目部署到正式的服务器环境中。
部署运行你感兴趣的模型镜像

错误信息

使用 Vite 打包的网页白屏,控制台报错。

Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of “text/plain”. Strict MIME type checking is enforced for module scripts per HTML spec.

原因

MIME 的类型错误,一般是本地 windows 下开发会遇到的问题。我就是在Windows 下用 Python 内置的 http.server 打开后遇到的。

解决方案

将打包后的文件部署在正式的服务器环境下(如 Nginx、Apache)。
请添加图片描述

参考资料

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

在 UniApp 开发中,遇到 `Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of "text/html"` 报错,通常是由于模块脚本的加载路径错误或服务器配置不当导致浏览器接收到非预期的 MIME 类型(如 `text/html` 而不是 `application/javascript`)[^1]。 ### 原因分析与解决方案 #### 1. **检查模块导入路径** 确保在项目中引入的模块路径是正确的,并且该路径确实指向一个有效的 `.js` 或 `.mjs` 文件。如果路径错误,服务器可能会返回 404 页面(HTML 内容),从而导致浏览器检测到 MIME 类型为 `text/html` 并抛出错误。 ```javascript // 示例:正确导入本地模块 import myModule from &#39;@/common/myModule.js&#39; ``` 如果使用了动态导入或远程 URL,请确认其有效性: ```javascript // 动态导入示例 const module = await import(&#39;https://example.com/path/to/module.js&#39;) ``` #### 2. **配置服务器 MIME 类型** 如果模块文件已正确部署但浏览器仍报 MIME 类型错误,则需要检查服务器配置,确保 `.js` 文件被正确识别为 `application/javascript`。 ##### Nginx 配置示例: ```nginx location ~ \.js$ { types {} default_type application/javascript; add_header Content-Disposition "inline"; } ``` ##### Apache 配置示例: ```apache <FilesMatch "\.js$"> ForceType application/javascript </FilesMatch> ``` 上述配置可确保服务器将 `.js` 文件以正确的 MIME 类型响应给客户端 [^4]。 #### 3. **检查构建工具配置(Vite / Webpack)** 如果你使用的是 Vite 或 Webpack 等现代前端构建工具,需确保其配置正确处理模块路径和静态资源服务。 例如,在 Vite 中,若你使用了 `base` 配置,应将其设为相对路径 `/`,以避免路径解析错误: ```ts // vite.config.ts export default defineConfig({ base: &#39;/&#39;, }) ``` 此外,确保模块文件未被误编译为 HTML 文件,特别是在使用代码分割或按需加载时 [^3]。 #### 4. **检查 UniApp 编译输出目录** UniApp 默认将构建后的文件输出至 `dist/` 目录。请确认构建过程中没有异常,所有 `.js` 文件都正常生成并放置在正确的子目录下。可以手动访问这些 `.js` 文件的 URL,查看是否返回了预期内容而非 HTML 页面。 #### 5. **跨域问题排查** 如果模块脚本来自第三方服务器,需确保该服务器允许跨域请求,并设置了合适的 CORS 头信息: ```http Access-Control-Allow-Origin: * Access-Control-Allow-Methods: GET Access-Control-Allow-Headers: Content-Type ``` #### 6. **清除缓存并重新构建** 有时浏览器缓存可能导致旧的错误响应被保留。尝试清除浏览器缓存、服务端缓存,并重新执行 `npm run build` 构建流程,确保资源更新生效。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值