更改应用程序的基本 href,而不更改 angular2 中地址栏中的 URL



我在生产中拥有我的 angular2 应用程序。每当我部署新版本的应用程序一段时间(由于 index.html 的缓存(都会提供旧索引.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 的基本 href。

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

任何帮助将不胜感激。

在我的页面加载完成后,我能够通过执行以下命令来实现一个非常相似的目标:

<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,而不会将用户重定向到任何地方。 我的灵感来自这个堆栈溢出响应:修改网址而不重新加载页面

最新更新