最近Angluar2挺火的,本人也趁热打铁的学习进行中,然而当做到将项目部署到IIS 6.0上时,localhost:1233/login是Angular2项目的登陆地址,第一遍跳转login页面,显示正常。但如果刷新login页面,这会报一个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]
这样设置的作用是当你访问Angluar站点时,会自动在根节点后面加一个#锚点。再次刷新便不会报404错误了。是不是很简单呢....