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

什么';s angular cli工具的--base href和--deploy url参数之间的区别,angular,angular-cli,Angular,Angular Cli,Angular的文档告诉我们,在将Angular应用程序部署到子文件夹中时,应在Angular application build for production中使用--base href参数: 如果将文件复制到服务器子文件夹中,请附加生成标志, --base href并适当设置 例如,如果index.html位于服务器上的/my/app/index.html, 将基本href设置为,如下所示 但是,angular cli具有--deploy url参数。该工具的文档将其描述为: 将在其中部署

Angular的文档告诉我们,在将Angular应用程序部署到子文件夹中时,应在Angular application build for production中使用
--base href
参数:

如果将文件复制到服务器子文件夹中,请附加生成标志,
--base href
并适当设置

例如,如果
index.html
位于服务器上的
/my/app/index.html
, 将基本href设置为
,如下所示

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

将在其中部署文件的URL

我见过一些解决方案,当应用程序要部署到子文件夹中时,它们使用
--deploy url
而不是
--base href

#问题#

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

  • 路由正在使用基本href
  • 部署url用于资产
在大多数情况下,base href就足够了

请参阅以下帖子:


要将脚本放入“/test/app1/script/”文件夹中,我使用以下方法:


因此,我的应用程序可以在上访问,但我的JS脚本和CSS在目录中。

如果我想使用/users作为路由器的应用程序基础,使用/public作为我的资产基础

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

有关详细的示例,请参见博客…

我正在使用类似于此问题的解决方案跟踪此线程。下面是我的命令:“ng build--watch=true--baseHref=/dist/--outputPath=D:\application\u root\dist--deployUrl=/dist/”。我想说的是,从应用程序的根文件夹运行应用程序,但是前端的所有代码都位于“dist”子文件夹中。我还必须将index.html从dist复制到根目录吗?它是
--base href/users/
,而不是
--base href/users
。(缺少斜杠)这是一个很好的答案,但请注意,它可能会影响模块的延迟加载。例如:
{path:'myModule',loadChildren:()=>import('./myModule/my.module')。然后(m=>m.myModule)}
ng build --prod --base-href /users --deploy-url /public