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

Angular 2+导入jQuery插件报错:MIME类型不允许执行脚本

解决Angular-CLI环境下加载本地JS脚本的MIME类型错误

这个问题我之前帮人排查过,本质是Angular CLI的开发服务器对静态资源的服务规则导致的:你直接引用./test.js时,服务器找不到这个文件,返回的是HTML格式的404错误页面,浏览器检测到MIME类型是text/html而非可执行的application/javascript,所以就抛出了「Refused to execute script because its MIME type ('text/html') is not executable」的报错。

下面是具体的解决步骤:

  • 第一步:将脚本放到正确的静态资源目录
    Angular CLI默认只会把src/assets/目录下的文件当作静态资源来提供服务,所以先把你的test.js移动到src/assets/文件夹里。

  • 第二步:修正脚本引用路径
    把原来的<script src="./test.js" type="text/javascript"></script>改成:

    <script src="assets/test.js" type="text/javascript"></script>
    

    因为你的页面设置了<base href="/">,所以直接从根路径指向assets下的文件即可,不需要加./前缀。

  • 第三步:确认jQuery加载顺序
    你目前的代码已经把jQuery放在插件脚本之前加载了,这点很重要——jQuery插件必须在jQuery核心库加载完成后才能执行,所以要保持这个顺序不变。

  • 可选:检查assets配置(如果自定义过)
    如果你修改过Angular的配置文件,打开angular.json,找到projects -> [你的项目名] -> architect -> build -> options -> assets,确保数组里包含src/assets(默认是包含的),比如:

    "assets": [
      "src/favicon.ico",
      "src/assets"
    ]
    

修改后的完整HTML示例:

<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title>Test</title>
  <base href="/">
  <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
  <script src="assets/test.js" type="text/javascript"></script>
</head>
<body>
  <!-- 你的页面内容 -->
</body>
</html>

另外提个小建议:如果你的test.js是jQuery插件,最好用自执行函数包裹代码,避免全局变量冲突,比如:

(function($) {
  // 你的插件代码
})(jQuery);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:47:14