Angular 2 + IIS 刷新 404 错误
Angular 2 + IIS on refresh 404 error
我最近在vs2015和IIS 7.5中陈述了一个angular 2项目。
我在刷新页面时遇到问题,当我刷新页面时我得到
"HTTP Error 404.0 - Not Found".
这是我的 angular 代码:
在 index.html 我有
<script>document.write('<base href="' + document.location + '" />');</script>
在app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { HttpModule } from '@angular/http';
import { RouterModule } from '@angular/router';
import { AppComponent } from './app.component';
import { HomeComponent } from './components/home/home.component';
import { HomeModule } from './modules/home.module';
import { CodesModule } from './modules/codes.module';
import { AdminModule } from './modules/admin.module';
@NgModule({
imports:
[
BrowserModule,
HttpModule,
RouterModule.forRoot([
{ path: 'home', component: HomeComponent },
{ path: 'home/:unauthorized', component: HomeComponent },
{ path: '', redirectTo: 'home', pathMatch: 'full' },
{ path: '**', redirectTo: 'home', pathMatch: 'full' },
]),
HomeModule,
CodesModule,
AdminModule
],
declarations:
[
AppComponent,
HomeComponent
],
bootstrap: [ AppComponent ]
})
export class AppModule { }
以及其他模块:
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { CodesComponent } from '../components/codes/codes.component';
@NgModule({
declarations:
[
CodesComponent
],
imports:
[
RouterModule.forChild([
{ path: 'codes', component: CodesComponent },
])
]
})
export class CodesModule {
}
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { AdminCompoment } from '../components/admin/admin.component';
@NgModule({
declarations:
[
AdminCompoment
],
imports:
[
RouterModule.forChild([
{ path: 'admin', component: AdminCompoment },
])
]
})
export class AdminModule {
}
当我尝试使用 hash 标签时可以正常工作,但我不想使用 has 标签。
我尝试在 IIS 中重写规则,但是当我刷新某些页面时,我只重定向到主页。
求助。
谢谢。
已解决。
步骤:
在web.config中添加重写
用这样的动作
<action type="Rewrite" url="/eUsluge.Administration.UI/" appendQueryString="true" />
Index.html 添加这个
<base href="/Application/" />
我最近在vs2015和IIS 7.5中陈述了一个angular 2项目。 我在刷新页面时遇到问题,当我刷新页面时我得到
"HTTP Error 404.0 - Not Found".
这是我的 angular 代码: 在 index.html 我有
<script>document.write('<base href="' + document.location + '" />');</script>
在app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { HttpModule } from '@angular/http';
import { RouterModule } from '@angular/router';
import { AppComponent } from './app.component';
import { HomeComponent } from './components/home/home.component';
import { HomeModule } from './modules/home.module';
import { CodesModule } from './modules/codes.module';
import { AdminModule } from './modules/admin.module';
@NgModule({
imports:
[
BrowserModule,
HttpModule,
RouterModule.forRoot([
{ path: 'home', component: HomeComponent },
{ path: 'home/:unauthorized', component: HomeComponent },
{ path: '', redirectTo: 'home', pathMatch: 'full' },
{ path: '**', redirectTo: 'home', pathMatch: 'full' },
]),
HomeModule,
CodesModule,
AdminModule
],
declarations:
[
AppComponent,
HomeComponent
],
bootstrap: [ AppComponent ]
})
export class AppModule { }
以及其他模块:
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { CodesComponent } from '../components/codes/codes.component';
@NgModule({
declarations:
[
CodesComponent
],
imports:
[
RouterModule.forChild([
{ path: 'codes', component: CodesComponent },
])
]
})
export class CodesModule {
}
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { AdminCompoment } from '../components/admin/admin.component';
@NgModule({
declarations:
[
AdminCompoment
],
imports:
[
RouterModule.forChild([
{ path: 'admin', component: AdminCompoment },
])
]
})
export class AdminModule {
}
当我尝试使用 hash 标签时可以正常工作,但我不想使用 has 标签。 我尝试在 IIS 中重写规则,但是当我刷新某些页面时,我只重定向到主页。
求助。 谢谢。
已解决。 步骤:
在web.config中添加重写 用这样的动作
<action type="Rewrite" url="/eUsluge.Administration.UI/" appendQueryString="true" />
Index.html 添加这个
<base href="/Application/" />