Angular 4 - 所有路线都不起作用

时间:2017-11-19 04:14:56

标签: javascript node.js angular

我使用localhost:4200ng serve处正常使用Angular应用。节点服务器位于localhost:3000

当我ng build时,由于localhost:3000正在app.use(express.static(path.join(__dirname, 'path/to/dist')));创建并正常提供捆绑文件,但localhost:4200/user/id处的路由在localhost:3000/user/id处发出错误{1}}说明Cannot GET /user/id

任何想法导致问题的原因是什么?我在<base href="/">文件中添加了index.html

1 个答案:

答案 0 :(得分:2)

听起来像您的路由位置策略导致问题。

直接来自Google的说明:
Angular 4 documentation

网址取决于您选择的策略:
PathLocationStrategy:localhost:3000 / user / id
HashLocationStrategy:localhost:3000 /#/ user / id

您可以修改应用模块中的 useHash 属性,在两者之间切换:

@NgModule({
  imports: [
    BrowserModule,
    FormsModule,
    RouterModule.forRoot(routes, { useHash: true })  // .../#/user/id
  ], ...
});

也就是说,如果您的网址不匹配,您的GET就会失败。