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

标签 javascript node.js angular

我在 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/

相关文章:

javascript - 使元素适合它的整个父级

javascript - 向下滚动时隐藏标题框阴影设置

javascript - 计算精确的百分比宽度

javascript - 如何更新 Sequelize Promise 中的属性?

angular - highlight.js 不适用于 Angular 2

当鼠标不在浏览器文档中时,Angular2 不会从 SignalR 处理程序更新组件

javascript - 通过 Javascript 单击时 PrimeFaces 单选按钮样式不更新

node.js - 使用命令进行 VS Code Node 调试

node.js - 显示 'db.get is not a function' NodeJs、MongoDB

javascript - 按钮需要点击两次才能折叠 html Angular div