如果你的angular項目部署到一個tomcat容器里面,localhost:8080是JavaWeb的主頁,localhost:8080/driver/login是你angular2項目的登陸地址。第一遍跳轉login頁面,顯示正常。但如果你刷新login頁面,這會報一個404錯誤。為什么呢,因為你刷新后其實它走的是JavaWeb的路由了,在Java的路由下找不到這個路由地址,所以報錯。這算是angular2的一個坑吧,網上搜了一下,發現這個遇到這個錯誤的人挺多的,但都沒有給出解決辦法,現把解決辦法貼出來,希望能幫到一些遇到這個問題的程序猿們把!
解決辦法:
解決angular2頁面刷新后報404錯誤辦法:
配置app.module.ts
import {PathLocationStrategy, LocationStrategy} from '@angular/common';
@NgModule({
declarations: [AppCmp],
bootstrap: [AppCmp],
imports: [BrowserModule, routes],
providers: [{provide: LocationStrategy, useClass: HashLocationStrategy]
]);
主要添加的代碼:
providers: [{provide: LocationStrategy, useClass: HashLocationStrategy]
這樣設置后,訪問angular站點,會自動在根節點后面加一個#錨點。再次刷新便不會報404錯誤了。