Angular CLI 8 更新 - URL 不再以基本 href 为前缀

Angular CLI 8 update - URLs not prefixed with base href anymore

问题

将我们的 Angular 应用程序更新到版本 8(包括 Angular CLI)后,URL 不再以 angular.json 文件中提供的基本 href 为前缀,这基本上破坏了我们的应用程序

以前的期望行为

在本地提供法语版本的应用程序时,在 localhost:8000 上打开网页会将我重定向到 localhost:8000/fr,并且每个 URL 我都可以从应用程序内导航到也将以 /fr/.

为前缀

新的错误行为

在本地提供法文版应用程序时,在 localhost:8000 上打开网页会导致显示 Cannot GET / 的空白页面,因为缺少 /fr。当我立即在 localhost:8000/fr 打开页面时,我可以看到登录页面,但由于我们的登录流程涉及第三方,当我从第三方返回我们的应用程序时,我只看到一个空白页面,上面写着 Cannot GET /login(因为缺少 /fr/)。

到目前为止我尝试过的方法(非详尽列表,但最有希望的两种方法)

类似问题

https://github.com/angular/angular-cli/issues/14925 基本上是完全相同的问题。不幸的是,所有这些问题都已关闭,但没有提供有关如何恢复旧行为的实际解决方案。

因此,正如我通过 https://github.com/angular/angular-cli/issues/16179 了解到的那样,它实际上是一开始就不应该出现的旧行为。

在本地 运行 应用程序时,您一次只能 运行 一种语言。假设该应用程序默认为德语,运行 它将在 localhost:8000 提供服务。 运行 英文版时,应用程序将在 localhost:8000/en 提供。 Angular CLI 7 和 8 都是如此。版本 8 的变化很简单,它不会自动将您重定向到 localhost:8000/en 当 运行 使用英文版本并导航到 localhost:8000。所以对我们来说,这意味着我们必须稍微调整我们的开发工作流程(只需确保我们在正确的地址打开应用程序),我们的生产环境实际上没有任何变化,因为所有语言都是实时的。