【问题标题】:base href in angular: change base-href in runtime?角度中的base href:在运行时更改base-href?
【发布时间】:2019-04-15 09:43:10
【问题描述】:

我有 1 个角度应用程序,其 base-href 设置为 /a/b/。 所以,在我的dist 文件夹中,有一个带有<base href="/a/b/"> 的html 文件。 这样,浏览器就可以解析到assets/images/logo.png 的图片链接实际上位于domain.com/a/b/assets/images/logo.png

所以我的应用程序在domain.com/a/b/index.html 上运行。

问题:

现在我还想在domain.com/a/b/c/index.html 上运行相同的应用程序。所以除了上一个。 同样在这里assets/images/logo.png 位于domain.com/a/b/c/assets/images/logo.png。 (观看那里的 /c/)。

我可以让它工作,不过,我真的很想构建我的应用程序一次并发布它一次。然后部署两次(/a/b//a/b/c/)。

所以事实上我的问题是,我可以在将它部署到我的 apache 服务器上的给定文件夹中之后配置这个 base-href 吗?有运行时选项吗?它可以从文件所在的目录推断它的基本路径吗? 或者,是否有命令可以更改 index.html 中的值?

【问题讨论】:

标签: angular apache


【解决方案1】:

您“可以”将其部署到 A),然后在构建过程中使用一些插件即时更改 index.html,并将其部署到 B)。但我不建议这样做。
最好加倍努力并进行第二次构建。 我这样做的原因是,在大多数情况下,当您有两个具有不同 url 的“相同”应用程序时,它们并不相同。可能是,他们只使用两个不同的后端。
至少我希望有可能为两个应用程序使用不同的环境配置文件。

我会在 Angular json 中定义第二个 Angular 项目。 您可以从第一个复制所有内容。
只有名称和“baseHref”应该不同。
那么您的所有更改都会影响这两个应用程序,您唯一需要做的就是构建它两次。
然后,您无需太多开销,并且可以灵活地更改环境配置(使用 angular-json 中的 fileReplacement)。

热烈的问候

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-14
    • 2018-05-21
    • 1970-01-01
    • 2020-06-28
    • 1970-01-01
    • 2021-05-31
    • 2014-08-31
    相关资源
    最近更新 更多