最近Angluar2挺火的,本人也趁熱打鐵的學(xué)習(xí)進(jìn)行中,然而當(dāng)做到將項(xiàng)目部署到IIS 6.0上時(shí),localhost:1233/login是Angular2項(xiàng)目的登陸地址,第一遍跳轉(zhuǎn)login頁(yè)面,顯示正常。但如果刷新login頁(yè)面,這會(huì)報(bào)一個(gè)404錯(cuò)誤。為什么呢,思前想后,代碼本地測(cè)試沒毛病啊,為啥發(fā)布上去就不行了呢?之后就是不停的百度、跳墻了。。。后來在看到網(wǎng)上一些教程后,發(fā)現(xiàn)遇到這坑的人也挺多的,在解決的博客中也找到的具體的解決辦法,現(xiàn)在就分享一下,以幫助那些未跳出這坑的朋友。其實(shí)辦法很簡(jiǎn)單,只需配置一下app.module.ts即可完美解決問題,代碼入下:
import {PathLocationStrategy, LocationStrategy} from '@angular/common';
@NgModule({
declarations: [AppCmp],
bootstrap: [AppCmp],
imports: [BrowserModule, routes],
providers: [{provide: LocationStrategy, useClass: HashLocationStrategy]
]);
其實(shí)核心代碼就這句:
providers: [{provide: LocationStrategy, useClass: HashLocationStrategy]
這樣設(shè)置的作用是當(dāng)你訪問Angluar站點(diǎn)時(shí),會(huì)自動(dòng)在根節(jié)點(diǎn)后面加一個(gè)#錨點(diǎn)。再次刷新便不會(huì)報(bào)404錯(cuò)誤了。是不是很簡(jiǎn)單呢....