我在 localhost:4200
有一个正常工作的 Angular 应用程序通过使用 ng serve
; Node 服务器位于 localhost:3000
.
当我做 ng 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
.
任何想法是什么导致了这个问题?我已经包含了<base href="/">
在index.html
文件。
最佳答案
听起来像是您的路由位置策略导致了问题。
直接来自 Google 的注释:
Angular 4 documentation
URL 取决于您选择的策略:
PathLocationStrategy: localhost:3000/user/id
HashLocationStrategy: localhost:3000/#/user/id
您可以修改应用模块中的useHash属性以在两者之间切换:
@NgModule({
imports: [
BrowserModule,
FormsModule,
RouterModule.forRoot(routes, { useHash: true }) // .../#/user/id
], ...
});
也就是说,如果您不匹配 URL,您的 GET 应该会失败。
关于javascript - Angular 4 - 所有路线都不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47373632/