2017-02-16 69 views
3

我有tips.pdf,我希望住在/tipsVanular Urls for Angular 2中的资产

当用户手动键入/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

我知道如何在服务器上做到这一点,但我想知道是否有一种在Angular中完成它的方法 – itsclarke

回答

0

这是因为您没有任何路线加工'../assets/pdfs/tips.pdf'。第一次重定向是有效的,因为主页与ROUTES中的第二项匹配。

您不需要Angular来做到这一点,您需要在服务器配置中添加重定向。

0

我不认为Angular可以做到这一点。

你可以尝试的一件事是创建一个虚拟组件,它使用window.open打开一个URL。

{ 
    path: 'tips', component: FilOpenerComponent 
} 

export class FilOpenerComponent { 
    constructor(private router: Router) { 
     window.open("../assets/pdfs" + this.router.url + ".pdf"); 
    } 
} 

而且您可以使用查询参数进一步概括此组件,以确切知道在哪里查找文件。

-1

当前路径或重定向路径应该有一个Angular组件。 所以在一个答案中提到的逻辑必须添加到组件