Angular 5在多个站点上进行生产构建部署

问题描述 投票:2回答:4

Angular 5在多个站点上进行生产构建部署

想要生成一个应该适用于任何位置/域的角度构建。这可以通过单个构建生成来实现。

我使用下面的命令生成构建

ng build --prod --base-href="www.site1.com/app-name/web"

其他网站也是如此

ng build --prod --base-href="www.site2.com/app-name/web"
ng build --prod --base-href="www.site3.com/app-name/web"

我想生成一次构建,以便我可以在多个位置进行部署。

任何人遇到过。?

angular build
4个回答
0
投票

不要在base-href中指定整个URL。只需使用/app-name/web


0
投票

--base-href flag帮助您将<base href="/">标签添加到您的html文件。这有助于解决应用程序中资源(REST API,图像,JS等)的相对URL。

我不清楚你的基地href中有什么“www.site1.com”?它是目录或服务器名称?

通常对于任何Web应用程序URL,您有以下重要部分:

[protocol]://[HostName]:[port]/[AppName]

如果没有提供端口,它将使用默认端口,具体取决于协议(http使用80作为默认端口)

几个例子: -

http://www.site1.com/app-name/web

http://www.site1.com/my-app/web

http://www.site2.com:8080/app-name/web

https://www.site3.com/my-app

需要注意的重要一点是,您的Web服务器公开了可以托管Web应用程序的端点(协议+主机+端口)。然后,您的应用程序可以在不同的路径下访问其他子应用程序(请参阅示例URL#1和#2)。

现在,如果您尝试在不同的Web服务器上运行相同的应用程序,那么只需将应用程序目录提供给base-href参数即可。

如果您尝试在同一Web服务器下运行多个子应用程序,则必须生成不同的构建,为--base-href参数提供不同的值。


0
投票

你可以改变你的package.json看起来像

"scripts": {
    ...
    "build_site1": "ng build --prod --base-href='www.site1.com/app-name/web'--output-path=dist/site1",
    "build_site2": "ng build --prod --base-href='www.site2.com/app-name/web'--output-path=dist/site2",
    "build_site3": "ng build --prod --base-href='www.site3.com/app-name/web'--output-path=dist/site3",
    "build_all": "npm run build_site1 && npm run build_site2 && npm run build_site3"
 }

然后跑

npm run build-all

您将在不同的子文件夹或dist中拥有所有已构建的项目


0
投票

生成构建应用程序构建的单个命令

ng build --prod --base-href="/cms-dev/" --output-hashing=all

如果您想要忽略任何Build问题,可以在命令中添加以下选项。 --aot = FALSE

© www.soinside.com 2019 - 2024. All rights reserved.