You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地Nginx搭建站点引入JavaScript模块报错MIME类型为text/plain如何解决

问题根因

ES模块脚本要求服务器必须返回正确的text/javascript MIME类型,当前Nginx虽然在配置中引入了mime.types文件,但系统自带的该文件可能未配置.js后缀对应的正确类型,或是存在优先级更高的配置覆盖了MIME规则,导致返回text/plain触发校验报错。

可行解决步骤
  • 方案1:修改全局mime.types配置
    打开/etc/nginx/mime.types文件,检查types块中是否存在如下配置:

    types {
        text/javascript js mjs;
    }
    

    若不存在则手动添加,若现有配置中.js后缀对应值为text/plain,修改为text/javascript即可,同时添加mjs后缀适配ES模块常用命名规范。

  • 方案2:在server块强制指定JS文件MIME类型
    若不想修改全局配置,可直接在现有server块中添加局部规则,修改后配置如下:

    server {
      location / {
        root /home/jyoung/Web/Test1/www;
        # 强制指定JS类文件返回正确MIME类型
        location ~* \.(js|mjs)$ {
          types { }
          default_type text/javascript;
        }
      }     
      location /images/ {
        root /home/jyoung/Web/Test1;
      }
    }
    

    空的types {}配置会清空当前层级继承的MIME规则,再通过default_type强制指定.js和.mjs文件返回text/javascript,优先级最高不会被其他配置覆盖。

  • 方案3:排查文件基础属性
    确认JS文件后缀为.js/.mjs、无拼写错误,同时Nginx运行用户对JS文件有可读权限,特殊场景下权限不足也会导致Nginx返回text/plain类型。

生效验证

修改配置后执行nginx -t检查配置语法是否合法,确认无报错后重启Nginx,清空浏览器缓存后重新访问页面即可。


内容的提问来源于stack exchange,提问作者user3195869

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 02:15:02