导入: import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import { HomeComponent } from './home/home.component'; import { AboutComponent } from './about/about.component'; import { UserComponent } from './user/user.component'; import { ErrorComponent } from './error/error.component'; import { SpecialpageComponent } from './specialpage/specialpage.component';
路由: const routes: Routes = [ { path: '', component: HomeComponent }, { path: 'about', component: AboutComponent }, { path: 'user', component: UserComponent }, { path: 'specialpage', component: SpecialpageComponent }, { path: '**', component: ErrorComponent }
];
@NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule], providers: [] }) export class AppRoutingModule { }
“app.module.ts”如下所示。
从'@angular/platform-browser'导入BrowserModule; 从'@angular/core'导入NgModule; 从'@angular/forms'导入FormsModule; 从'@angular/http'导入HttpModule; 从'./app-routing.module'导入AppRoutingModule;但是当我在http-server中部署项目时,链接并没有按照预期工作。我使用了“http-server ./dist”命令部署应用程序,并成功部署了应用程序,但链接无法正常工作。当我访问“http://localhost:4200/about”时,它会出现404错误。
从'./app.component'导入AppComponent; 从'./home/home.component'导入HomeComponent; 从'./about/about.component'导入AboutComponent; 从'./error/error.component'导入ErrorComponent; 从'./user/user.component'导入UserComponent; 从'./specialpage/specialpage.component'导入SpecialpageComponent;
@NgModule({ declarations: [ AppComponent, HomeComponent, AboutComponent, ErrorComponent, UserComponent, SpecialpageComponent ], imports: [ BrowserModule, FormsModule, HttpModule, AppRoutingModule ], providers: [], bootstrap: [AppComponent] }) 导出类AppModule { }我没有对其他组件进行任何修改。 然后,我使用'ng serve'命令部署了应用程序,并且应用程序与链接一起正常工作。 例如:http://localhost:4200/about
我做错了什么吗?为什么 'ng-serve' 能用,而 'http-server' 不能用?
非常感谢您的帮助。
我已将我的项目上传到 github。
imports: [RouterModule.forRoot(routes, {useHash: true})],
。如果它可以这样工作,那么你需要在生产服务器上启用HTML5 pushState。 - Günter Zöchbauerpath: ''
的路由添加pathMatch: 'full'
。 - Günter ZöchbaueruseHash:true
:D。正如我在最初的评论中所说,您必须配置服务器以支持HTML5 pushState。useHash:true
只是为了调试问题的原因。 - Günter Zöchbauer