拒绝执行脚本runtime.js,因为MIME类型不可执行

时间:2018-09-14 01:43:02

标签: javascript html angular spring-boot angular-cli

这是我在执行浏览器检查-> index.html文件的控制台选项卡时遇到的错误。

  

拒绝执行“ http://localhost:63342/runtime.js”中的脚本   因为它的MIME类型('text / html')是不可执行的,并且是严格的MIME   类型检查已启用。

我的应用程序是spring-boot和Angular的集成。 我相信这也是导致弹簧启动无法在UI上提供前端js和.html文件内容的原因。尽管后端应用程序可以正常运行,但是在tomcat服务启动时,它不会显示任何UI http://localhost:8080

Angular CLI: 6.0.8
Node:10.0.0
OS: darwin x64
Angular: 6.1.7

生成的index.html具有标签:

<script type="text/javascript" src="runtime.js"></script>
<script type="text/javascript" src="polyfills.js"></script>
<script type="text/javascript" src="styles.js"></script>
<script type="text/javascript" src="vendor.js"></script>
<script type="text/javascript" src="main.js"></script>

手动将类型更改为“ text / html”可解决该错误,但在UI上仍然不显示任何内容。 这是由于特定的angular-cli版本引起的问题吗?我的两个问题(spring不提供前端静态资源)是否相关?还是base href错误? 如果不手动更改脚本标记中的类型,是否可以解决该问题?因为index.html是在运行ng build时生成的,并且被放置在资源目录中。我这样做是为了简化部署。这是整个生成的index.html文件:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Welcome App</title>
  <base href="/">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
  <app-root></app-root>
<script type="text/javascript" src="runtime.js"></script><script type="text/javascript" src="polyfills.js"></script><script type="text/javascript" src="styles.js"></script><script type="text/javascript" src="vendor.js"></script><script type="text/javascript" src="main.js"></script></body>
</html>

我是新蜜蜂,请提供帮助。

这是我在浏览器检查->网络->标头中看到的内容(当从Intellij中的“从浏览器打开文件”选项并且tomcat没有运行时)。 生成的角度文件之一的响应头:

HTTP/1.1 304 Not Modified
content-type: text/html
server: IntelliJ IDEA 2018.1.2
date: Sun, 16 Sep 2018 16:08:39 GMT
X-Frame-Options: SameOrigin
X-Content-Type-Options: nosniff
x-xss-protection: 1; mode=block

但是当tomcat启动并运行时,请注意检查200响应:

HTTP/1.1 200
Content-Type: application/json;charset=UTF-8

由于它的app / json响应,我看到[]响应,我认为这是错误的,应该是html响应。

在ng上添加的这些脚本标签是否在index.html中构建,而不是在UI或其他内容上不显示内容的问题?在演示gradle项目中(来自https://start.spring.io/),它在网页上显示了UI,因此我认为将'text / javascript'更改为'html'并不是真正的问题;但不确定。这是我在工作UI时所看到的:

HTTP/1.1 200
Accept-Ranges: bytes
Content-Type: text/html;charset=UTF-8

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如果使用的是apache2,请检查/ etc / apache2 /

中的apache2.conf。

确保您具有以下一行:

AddType文本/ javascript .js

确保已安装并启用mod:mime:

sudo a2enmod哑剧