2017-02-16 53 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組件。 所以在一個答案中提到的邏輯必須添加到組件