【问题标题】:Changing base-href of the application without changing URL in the address bar in angular2更改应用程序的base-href而不更改angular2地址栏中的URL
【发布时间】:2017-11-29 01:05:25
【问题描述】:

我的 angular2 应用程序正在生产中。并且每当我部署我的应用程序的新版本一段时间(由于 index.html 的缓存),旧的 index.html 都会被提供,并且由于旧的 js 文件被新的 js 文件替换,我的旧 js 文件会出现 404 错误. 虽然这个问题会随着时间的推移而消失,但我想要一个 angular-cli 构建解决方案,这样我就可以将旧文件保留在我的服务器上,并在接下来的 2 个后续版本之后将其删除。

我尝试在我的詹金斯中这样做, ng build -prod -aot --base-href="/myapp/10.5.0/"

但问题是,每当我部署此应用程序时,以下文件夹路径都会附加到地址栏 URL http://localhost/myapp/10.5.0/

我不想附加要附加到 URL 的 base-href。

如果我实现了这一点,那么我可以拥有多个版本文件夹,并且旧的(缓存的)index.html 将从旧文件夹中提供服务,并且仍然可以正常工作而不会出现 404 错误。

任何帮助将不胜感激。

【问题讨论】:

    标签: angular angular-cli


    【解决方案1】:

    在我的页面加载完成后,我可以通过执行以下操作来实现非常相似的目标:

    <script type="text/javascript">
    window.history.pushState('any-value', 'My Website', '/url/without/base/href');
    </script>
    

    所以在你的情况下,这可能是这样的:

    <script type="text/javascript">
    window.history.pushState('any-value', 'My Website', '/');
    </script>
    

    这会更改地址栏中的 URL,而不会将用户重定向到任何地方。 我的灵感来自 Stack Overflow 的回复: Modify the URL without reloading the page

    【讨论】:

      猜你喜欢
      • 2019-03-26
      • 2013-09-17
      • 1970-01-01
      • 1970-01-01
      • 2013-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-28
      相关资源
      最近更新 更多