#angular #lazy-loading #angular9 #angular-module
#angular #отложенная загрузка #angular9 #angular-module
Вопрос:
<html lang="en">
<head>
link href="MY-CDN-PATH/styles.028e2d2ecf1b16206359.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<app-root></app-root>
<script src="https://MY-CDN-PATH/runtime.24248252fa5d092174cd.js" type="module"></script>
<script src="https://MY-CDN-PATH/polyfills.9d865c4e055183e2a9fe.js" type="module"></script>
<script src="https://MY-CDN-PATH/scripts.b9bbd771b6e5188128c7.js" type="module"></script>
<script src="https://MY-CDN-PATH/main.dfa0c749560539af4c24.js" type="module"></script>
<script src="https://MY-CDN-PATH/common.45a6ad43242581d6f4b4.js" type="module"></script>
</body>
</html>
Я использую приведенный выше HTML для загрузки моего приложения angular из CDN. Мое приложение загружает вышеупомянутые js-файлы из CDN.
Проблема: есть ли какой-либо способ загрузить мои отложенные загруженные модули из CDN. В настоящее время он загружается с пути сервера, на котором он размещен. Могу ли я указать путь в HTML для отложенных загруженных модулей, которые будут обслуживаться по пути CDN?
Ответ №1:
Установка deployUrl в настройках сборки поможет вам в этом. deployUrl — это URL, по которому Angular будет искать любые ресурсы (включая файлы js). Это можно установить через командную строку следующим образом:
ng build --deploy-url https://MY-CDN-PATH/
Вы также можете установить deployUrl в настройках angular.json. У меня разные URL-адреса развертывания как для разработки, так и для производства.
https://angular.io/guide/deployment#the-deploy-url
Плохая новость в том, что эта функция устарела в Angular 15. Надеюсь, что для этого будет какая-то прямая замена, но в настоящее время обходные пути не очень хороши. У этого парня есть несколько предложений:
https://github.com/angular/angular-cli/issues/22113#issuecomment-1036333580