Яка різниця між параметрами --base-href та --deploy-url інструменту angular-cli


89

Документація Angular інформує, що я повинен використовувати --base-hrefпараметр у збірці програми Angular для виробництва, коли він буде розгорнутий у підпапці сервера:

Якщо ви скопіюєте файли в підпапку сервера, додайте прапор побудови --base-hrefта встановіть <base href>належним чином.

Наприклад, якщо файл index.htmlє на сервері за адресою /my/app/index.html, встановіть базовий href <base href="https://stackoverflow.com/my/app/">як такий.

https://angular.io/guide/deployment

Однак --deploy-urlпараметр має angular-cli . Документація інструменту описує це як:

URL-адреса, де будуть розміщені файли.

https://github.com/angular/angular-cli/wiki/build

Я бачив рішення, які використовують --deploy-urlinsted of, --base-hrefколи додаток буде розгорнуто у підпапці сервера.

Питання

У чому різниця між --base-hrefта --deploy-urlпараметрами інструменту angular-cli? Коли слід використовувати кожну з них?

Відповіді:



26

Щоб помістити свої сценарії всередину папки " / test / app1 / script / ", я використовую цю команду :

ng build --prod --base-href /test/app1/ --deploy-url /test/app1/script/

Таким чином, мій додаток доступний за адресою https://example.com/test/app1/, але мої сценарії JS та CSS знаходяться в каталозі https://example.com/test/app1/script/ .


Це чудова відповідь, але майте на увазі, що це може призвести до лінивого завантаження модулів. Наприклад: { path: 'myModule', loadChildren: () => import( './myModule/my.module' ).then( m => m.MyModule ) }
Кен Хадден

9

Якщо я хочу використовувати / users як базу додатків для маршрутизатора та / public як основу для своїх активів.

ng build --prod --base-href /users --deploy-url /public 

Детальний приклад див. У блозі Шехара Гулаті ...


Я стежу за цією темою зі своєю подібною до цієї проблеми. Ось моя команда: "ng build --watch = true --baseHref = / dist / --outputPath = D: \ application_root \ dist --deployUrl = / dist /". Я намагаюся сказати, що запускаю програму з папки application_root, але весь код інтерфейсу знаходиться в підпапці "dist". Також мені потрібно скопіювати index.html з dist в кореневу систему?
Позначте

1
це --base-href /users/і ні --base-href /users. (пропущена коса риса)
bvdb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.