當我嘗試從地址欄打開Angular 2路由時,我不斷收到http 404響應,但是使用帶有「routerLink」指令的錨點導航到路由的工作沒有問題。我試圖按照Angular's Deployment Guide中的說明修改我的web.config文件以進行url重寫,但這通常會完全破壞我的路由。最後,我在我的index.html文件中包含了<base href="/">
,但這也沒有幫助。我們非常感謝社區的任何幫助!Angular 2路由 - 從地址欄打開鏈接
這裏是我的路由組件代碼:
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { ClientsComponent } from './clients.component';
const routes: Routes = [
{ path: 'clients', component: ClientsComponent },
//^This does not work from address bar, only from routerLinks.
{
path: '**',
redirectTo: '',
pathMatch: 'full'
},
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
您可以輕鬆地說解決了使''#基於路由這個問題'[RouterModule.forRoot(路線,{useHash:真})]'如果你不需要'html5mode'路由 –
謝謝Pankaj,這個工作,但我不希望在我的網站上有#符號。看起來像一個「哈克」解決方法。這是Angular 2和IIS的一個已知問題嗎? – DotNetDev
不,這可以發生在任何服務器..不專門與IIS。你必須配置你的服務器來處理這樣的請求..我可以知道你使用'systemjs' /'weback'的模塊加載器嗎? –