简而言之,我们希望将旧链接重定向到我们的新路线。我知道如何用app-routes.ts来做到这一点,但是,它并不是正好的工作。例如:从.NET迁移到angular2:如何重定向旧(绝对)链接?
export const ROUTES: Routes = [ { path: 'my-loads', component: MyLoadsComponent, canActivate: [AuthGuard] }, { path: 'Applications/LoadBoard/CarrierBoard.aspx', redirectTo: 'my-loads' } ]
此重定向的实际工作,但只有当用户试图访问/#/Applications/MyApp/Controller.aspx
(与哈希),但如果用户试图访问/Applications/MyApp/Controller.aspx
(无乱码,这是URL用户将无法正常工作将书签)。
这是因为webpack/angular2显然使用相对 URL来加载所有使用该站点所需的脚本。它试图加载script.bundle.js
而不是/script.bundle.js
,所以它试图加载/Applications/MyApp/script.bundle.js
。在这种情况下,如果您尝试访问除root以外的绝对URL,则所需的脚本只有404s,因此没有任何脚本运行,并且您将看到“Loading ...”,而没有其他任何内容。
我知道这种编译的想法是允许用户构建不驻留在根文件夹中的webapps。这是一个好主意,但它阻止了我们重定向旧网址。在angular2中实现这些重定向有没有(正确的)方法?
我还在研究如何让基本HREF是与环境相关的,而不是路线硬编码。幸运的是,基础href应该在每个开发人员的环境中,以及分段和生成,但我仍然希望这是一个环境变量。 –