0

我们正在使用角度 6。

我想创建另一个角度应用程序并放在同一个域中,这里是 example.com主应用程序的示例,我的新应用程序将托管在 example.com/app2/

这是我的 apache 配置的样子

<VirtualHost>

ServerName example.com

...

ProxyPass /app2/ http://app2-server:4200/
ReverseProxyPass /app2/ http://app2-server:4200/

ProxyPass / http://main-app-server:4200/
ReverseProxyPass / http://main-app-server:4200/

...

</VirtualHost>

现在,当我尝试访问新应用程序时,它会产生下载文件的问题,因为 Angular 应用程序将在 index.html main.js vendor.js styles.js等中插入以下文件。

main.js现在from的请求example.com/app2/将转到,example.com/main.js因为 Angular 构建过程会自动添加main.js到 index.html

有没有办法说角度而不是添加<script type="text/javascript" src="main.foo.js"></script>我的应用程序需要添加<script type="text/javascript" src="/app2/main.foo.js"></script>

我知道这可以在构建过程中完成。但这些不是唯一的文件。有 webpack 引用和动态下载的块文件。这些参考也需要改变。

开发人员也使用开发服务器而不是构建流程。所以这个路径改变也需要成为 dev-build 的一部分。

所以问题是,有没有办法设置这些自动生成的文件(包括 webpack 块)的路径?

PS我使用角度6,但app2可以升级到角度9/10。

4

1 回答 1

0

你可以添加

ng build --prod --base-href /app2/

进入你的构建命令,或者我很确定你可以在 build.options.baseHref 下的 angular.json 中配置它

关于开发服务器,我不确定为什么这很重要。所以我需要更多关于你想要完成的事情的细节。如果您希望同时运行两个项目,那就另当别论了,因为您不能让两个本地服务器在 4200 上进行监听。

于 2020-02-11T13:29:05.893 回答