uniapp failed to load module script: expected a javascript module script but the server responded with a mime type of 如何解决?

我在使用uniapp开发时遇到了一个报错:“Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of…”。这个错误导致我的项目无法正常运行,请问该如何解决?具体是哪个配置出了问题?需要修改服务器设置还是uniapp的配置?

2 回复

服务器未正确配置MIME类型。检查服务器配置,确保.js文件返回正确的MIME类型application/javascript


这个错误通常是因为服务器返回的 JavaScript 文件 MIME 类型不正确,导致浏览器拒绝执行。以下是几种解决方案:

1. 配置服务器 MIME 类型

Apache 服务器(在 .htaccess 文件中添加):

<IfModule mod_mime.c>
    AddType application/javascript .js
    AddType application/wasm .wasm
</IfModule>

Nginx 服务器(在 nginx.conf 中添加):

location ~* \.js$ {
    add_header Content-Type application/javascript;
}

2. UniApp 本地开发解决方案

修改 manifest.json

{
    "h5": {
        "devServer": {
            "headers": {
                "Content-Type": "application/javascript"
            }
        }
    }
}

3. 检查文件路径和引用

确保在页面中正确引用模块:

// 正确方式
import module from '@/common/module.js'

// 而不是
import module from '@/common/module'

4. 构建配置检查

在 vue.config.js 中配置:

module.exports = {
    configureWebpack: {
        output: {
            chunkLoadingGlobal: 'appJsonp'
        }
    }
}

5. 部署注意事项

  • 确保服务器正确配置了所有静态资源的 MIME 类型
  • 检查文件是否实际存在且路径正确
  • 清除浏览器缓存和构建缓存重新尝试

最可能的原因是服务器配置问题,优先检查服务器 MIME 类型设置。

回到顶部