Angular 2中资产的虚荣URL

时间:2017-02-16 22:12:48

标签: angularjs angular

我希望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创建一个组件。

3 个答案:

答案 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中的组件。  正如其中一个答案所述,必须在组件

中添加逻辑