Отказался от выполнения сценария runtime.js, потому что MIME-тип не является исполняемым - PullRequest
0 голосов
/ 14 сентября 2018

Это ошибка, которую я получаю при проверке браузера -> вкладка Консоль файла index.html.

Отказ от выполнения скрипта из 'http://localhost:63342/runtime.js' из-за его MIME-типа('text / html') не является исполняемым, и включена строгая проверка типов MIME.

Мое приложение представляет собой интеграцию Spring-загрузки и Angular. Я полагаю, что это также является причиной того, что spring-boot не обслуживает содержимое интерфейса js и .html в пользовательском интерфейсе. Несмотря на то, что бэкэнд-приложение работает нормально, но при запуске службы tomcat, оно не отображает никакого пользовательского интерфейса 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» устраняет ошибку, но все равно ничего не показывает в пользовательском интерфейсе,Это проблема из-за конкретной версии angular-cli?Связаны ли мои две проблемы (пружина не обслуживает статические ресурсы внешнего интерфейса)?Или база 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 build в index.html, проблемой, из-за которой не отображается содержимое в пользовательском интерфейсеили что-то еще? Я так не думаю, потому что я скопировал и вставил свое статическое содержимое в демо-проект Gradle (с https://start.spring.io/), и он отображает пользовательский интерфейс на веб-странице, поэтому изменив «text / javascript» на «html»на самом деле это не проблема, в которую я верю, но не уверен. И вот что я вижу в ответ на рабочий интерфейс:

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

Есть предложения?

1 Ответ

0 голосов
/ 17 сентября 2018

Если вы используете apache2, проверьте apache2.conf в / etc / apache2 /

Убедитесь, что у вас есть эта строка:

AddType text / javascript .js

Убедитесь, что мод: mime установлен и включен:

sudo a2enmod mime

...