【发布时间】:2018-09-29 01:26:46
【问题描述】:
我需要在 HTML 文件中加载 JavaScript(jQuery 插件)。但这似乎不起作用。这是在 Angular-CLI 服务器上运行的 (ng serve) 这是 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="./test.js" type="text/javascript"></script>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
<app-root>Loading...</app-root>
</body>
</html>
我收到此错误:
拒绝执行脚本 'http://localhost:8080/test.js' 因为它的 MIME 类型 ('text/html') 不可执行,严格的 MIME 类型检查是 已启用。
我找到了this question,解决方案似乎正在纠正type 属性,但这并没有为我解决。我试过text/javascript和application/javascript。
我需要在这里做什么?
编辑:网络控制台显示脚本的 404 错误。表示请求没有可用的响应数据。内容类型为text/html; charset=utf-8
注意:我最初将其发布为比我的实际代码更小的示例,因为我认为它与 Angular CLI 服务器无关。可能是这样,所以我将我的示例恢复为我拥有的实际代码。
【问题讨论】:
-
修复您的网络服务器。
-
因为您的问题是您的网络服务器正在返回 HTML,这几乎可以肯定是路由错误,但您没有提供 相关 信息。打开 devtools,查看网络选项卡,然后检查您实际收到的内容(可能是 HTML 而不是您的脚本)。问题应该(尽可能)有足够的信息来重现问题本身的错误。
-
我正在向您提供我拥有的信息。这是在 Angular 开发服务器(ng serve)上运行的。
-
您不会手动注入该脚本标签,对吧?那是 Angular 开发服务器注入的脚本标签?你告诉 Angular 把它命名为 test.js 吗?
-
前几天我遇到了同样的错误。对我来说,这只是一个路径问题。我从
public文件夹中提供文件,所以我将src 链接更正为指向/path/test.js,它对我来说很好用。要测试您的脚本,只需将该 url 复制到您的浏览器中,如果它没有返回任何内容,则您的路径脚本不正确。
标签: javascript jquery html angular