angular4 – 所有路线不工作

我有一个Angular应用程序在localhost:4200下正常工作,使用ng serve ; 节点服务器在localhost:3000

当我ng build一个捆绑文件正在创build,并正确地在localhost:3000因为app.use(express.static(path.join(__dirname, 'path/to/dist'))); 但是在localhost:4200/user/id工作的路由在localhost:3000/user/id处给出了一个错误,说明它Cannot GET /user/id

任何想法是什么造成的问题? 我在index.html文件中包含了<base href="/">

听起来就像您的路由位置策略正在导致这个问题。

来自Google的笔记:
Angular 4文档

url取决于您select的策略:
PathLocationStrategy:localhost:3000 / user / id
HashLocationStrategy:localhost:3000 /#/ user / id

你可以修改app模块中的 useHash属性来在两者之间切换:

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

这就是说,如果你的URL不匹配,你的GET应该会失败。