Angular 6, после ng build index.html получает ошибки в консоли

Я столкнулся с проблемой, пожалуйста, помогите мне решить эту проблему. Проблема в том, что когда я делаю ng build в моем CLI и перейдите в папку dist и запустите файл index.html, чтобы консоль получала ошибки пути к файлам.

Failed to load resource: net::ERR_FILE_NOT_FOUND
polyfills.js:1 Failed to load resource: net::ERR_FILE_NOT_FOUND
styles.js:1 Failed to load resource: net::ERR_FILE_NOT_FOUND
scripts.js:1 Failed to load resource: net::ERR_FILE_NOT_FOUND
vendor.js:1 Failed to load resource: net::ERR_FILE_NOT_FOUND
main.js:1 Failed to load resource: net::ERR_FILE_NOT_FOUND
/D:/favicon.ico:1 Failed to load resource: net::ERR_FILE_NOT_FOUND

2 ответа

Решение

Он связан только с путем, просто используйте флаг --base-href при сборке следующим образом:

ng build --prod --base-href ./

Теперь он генерирует строки, похожие на следующие в вашем index.html -

<base href="./">
<!-- Note the file names here -->
<script type="text/javascript" src="runtime.30458714a8af1a2e7153.js"></script>
<script type="text/javascript" src="polyfills.db85ebdc34f3cf0f4d3f.js"></script>
<script type="text/javascript" src="scripts.e8fe6486441dc07e00c6.js"></script>
<script type="text/javascript" src="main.f9ea86a83ded92312d0f.js"></script>

Это оно! Он работает везде, вам просто нужно развернуть производственную сборку, и вы готовы к работе!

Также обратите внимание, что если вы пытаетесь запустить index.html прямо из ваших файлов, он не будет работать. Вам нужно будет разместить его на http-сервере (например, XAMPP для локального)

По умолчанию base для href свойство определяется как / для угловых проектов. Если вы создаете проект и обращаетесь к нему, открывая файл index.html, все .js что HTML хочет загрузить будет загружен из '/' directory,

Например, если вы используете Windows, и ваша сборка присутствует в C:\users\xys\ng\dist\index.html, и у тебя есть <script type="text/javascript" src="runtime.js"></script> в вашем HTML, браузер будет искать .js файлы в C:\runtime.js,

Чтобы решить эту проблему, вы можете скопировать все свои файлы в корневой каталог диска (не рекомендуется) или создать локальный сервер, а затем сервировать статические файлы на этом сервере (предпочтительный метод).

Другие вопросы по тегам