【发布时间】:2017-09-18 00:05:53
【问题描述】:
我将开发一个简单的 Angular 2 应用程序。我使用 Angular CLI 创建了一个带有路由的项目,并使用“ng generate component”命令向应用程序添加了几个组件。然后我在 app-routing.module.ts 中指定路由如下。
从'@angular/core'导入{ NgModule };
从'@angular/router'导入{路由,RouterModule};
从'./home/home.component'导入{ HomeComponent };
从'./about/about.component'导入{ AboutComponent };
从'./user/user.component'导入{用户组件};
从'./error/error.component'导入{ErrorComponent};
从'./specialpage/specialpage.component'导入{ SpecialpageComponent };
常量路线:路线= [
{
小路: '',
组件:HomeComponent
},
{
路径:'关于',
组件:关于组件
},
{
路径:'用户',
组件:用户组件
},
{
路径:'特殊页面',
组件:特殊页面组件
},
{
小路: '**',
组件:错误组件
}
];
@NgModule({
进口:[RouterModule.forRoot(routes)],
出口:[路由器模块],
提供者:[]
})
导出类 AppRoutingModule { }
app.module.ts如下。
从“@angular/platform-browser”导入 { BrowserModule }; 从'@angular/core'导入{ NgModule }; 从“@angular/forms”导入 { FormsModule }; 从“@angular/http”导入 { HttpModule }; 从'./app-routing.module'导入{AppRoutingModule}; 从'./app.component'导入{AppComponent}; 从'./home/home.component'导入{ HomeComponent }; 从'./about/about.component'导入{ AboutComponent }; 从'./error/error.component'导入{ErrorComponent}; 从'./user/user.component'导入{用户组件}; 从'./specialpage/specialpage.component'导入{ SpecialpageComponent }; @NgModule({ 声明:[ 应用组件, 家庭组件, 关于组件, 错误组件, 用户组件, 特殊页面组件 ], 进口:[ 浏览器模块, 表单模块, Http模块, 应用路由模块 ], 提供者:[], 引导程序:[AppComponent] }) 导出类 AppModule { }我没有为其他组件添加任何修改。 然后我使用“ng serve”命令部署了应用程序,该应用程序可以正常使用链接。 例如:http://localhost:4200/about
但是当我在 http-server 中部署项目时,链接无法按预期工作。我使用“http-server ./dist”命令部署了应用程序,应用程序部署良好,但链接不起作用。当我转到“http://localhost:4200/about”时,会出现 404 错误。
我做错了吗?为什么“ng-serve”有效而“http-server”无效?
任何帮助将不胜感激。提前致谢。
我已将我的项目上传到github。
【问题讨论】:
-
试试
imports: [RouterModule.forRoot(routes, {useHash: true})],。如果它以这种方式工作,您需要在生产服务器上启用 HTML5 pushState。 -
@GünterZöchbauer,我试过了,但没有成功
-
是的,不要使用
useHash:true:D。正如我在最初的评论中所说。您必须配置服务器以支持 HTML5 pushState。useHash:true只是为了调试问题的原因。 -
@GünterZöchbauer,感谢您提供有关此事的宝贵信息。我将尝试为此找到解决方案。再次感谢
-
你找到解决办法了吗。我有同样的问题。
标签: angular npm angular2-routing angular-cli angular2-template