angular-cli工具的--base-href和--deploy-url参数之间有什么区别


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

但是,angular-cli具有--deploy-url参数。该工具的文档将其描述为:

将在其中部署文件的URL。

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

我已经看到了使用的解决方案--deploy-urlinsted的的--base-href应用程序时,将在服务器的子文件夹进行部署。

问题

angular-cli工具--base-href--deploy-url参数有什么区别?我什么时候应该使用每个?

Answers:



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 

有关详细示例,请参见Shekhar Gulati的博客。


我正在跟这个问题类似地关注这个话题。这是我的命令:“ 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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.