我希望tips.pdf
住/tips
。
当用户手动输入/tips
时,我希望将其重定向到/tips.pdf
,最好是在新标签中。
当我更新路由模块时,我得到Error: Cannot match any routes. URL Segment: 'tips'
。
const ROUTES: Routes = [
{
path: '', redirectTo: '/home', pathMatch: 'full'
},
{
path: 'home', component: HomeComponent
},
{
path: 'fun', component: FunComponent
},
{
path: 'tips', redirectTo: '../assets/pdfs/tips.pdf', pathMatch: 'full'
}
]
这是因为我没有组件吗?显然,我不想为我的资产文件夹中的固定pdf创建一个组件。
答案 0 :(得分:0)
这是因为你没有任何路线加工'../assets/pdfs/tips.pdf'。第一个重定向有效,因为home匹配ROUTES
中的第二个条目。
您不需要Angular来执行此操作,您需要在服务器配置中添加重定向。
答案 1 :(得分:0)
我不认为Angular可以做到这一点。
您可以尝试的一件事是创建一个使用window.open
打开网址的虚拟组件。
{
path: 'tips', component: FilOpenerComponent
}
export class FilOpenerComponent {
constructor(private router: Router) {
window.open("../assets/pdfs" + this.router.url + ".pdf");
}
}
您可以使用查询参数进一步概括此组件,以确切知道查找文件的位置。
答案 2 :(得分:-1)
当前路径或重定向路径应该具有Angular中的组件。 正如其中一个答案所述,必须在组件
中添加逻辑