Angular производственная сборка не может быть загружена - загрузка модуля заблокирована из-за запрещенного типа MIME («text / html») - PullRequest
1 голос
/ 07 февраля 2020

Я собрал свое приложение под управлением ng build --configuration = production и загрузил его (вручную через FTP) на сервер (я пробовал два разных). Доступ к root, как myurl.com, работает нормально, но всякий раз, когда я хочу получить прямой доступ к подстранице, например, myurl.com/subpage, страница пуста, и я получаю следующую ошибку: Loading module from “https://myurl.com/runtime-es2015.js” was blocked because of a disallowed MIME type (“text/html”). Та же ошибка для полифиллов. -es2015. js, main-es2015. js

Если я захожу на root и перехожу на подстраницу, все работает отлично.

До сих пор я пытался:

  • набор <base href="."> в индексе. html

  • набор "target": "es5" в настройках. json

  • вручную изменить тип сценариев с type="module" на type="text/javascript" как здесь: <script src="runtime-es2015.js" type="text/javascript">

Angular CLI & Angular Версия 8.1

Версия машинописного текста 3.4.5

Версия веб-пакета 4.35.2

На сервере у меня также есть файл .htaccess, который был необходим для доступа к myurl.com/subpage. в результате получилось 404

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>

Буду очень благодарен, если кто-нибудь сможет мне помочь.

Редактировать Доступ к «подстранице» во время ng serve работает нормально!

Редактировать2 При просмотре вкладки Сеть в консоли разработчика в браузере, запросы GET для файлов. js работают нормально, но тип неправильный (html). Если я загружаю страницу root (myurl.com), MIME-тип правильный.

1 Ответ

0 голосов
/ 14 февраля 2020

У меня была похожая проблема с Angular приложением, которое я развернул на https://host.my/app. Как упоминалось в другом ответе SO , изменив

<base href="/">

на

<base href="./">

решил это для меня. Просто установить его на <base href="."> не удалось.

HTH

...