Chrome / Internet资源管理器浏览器刷新(F5,ctrl + R,刷新箭头等)无法使用远程服务器上的Angular(2+)项目

时间:2017-10-27 13:49:34

标签: javascript angular browser angular-cli page-refresh

对于远程服务器上已部署的Angular(2+)项目,我遇到了一个简单的手动刷新(F5,ctrl + R,刷新箭头等)操作的问题。

在本地测试项目(开发和构建prod testet)非常有效,即使部署到我们的实习服务器,刷新也能正常工作。

在远程服务器上,忽略任何刷新(F5,ctrl + R等)。我没有错误,没有找到任何页面,没有 - 浏览器只停留在当前页面上,没有更改或刷新。

在网络标签中,它甚至不向服务器发送请求。

我可以看到,favicon闪烁一毫秒(因此有些东西是前端注册的)。

我可以强制刷新的唯一方法是手动更改URL。

PS。唯一可见的区别是远程服务器运行在https:// protocol。

我在google上搜索了几个小时没有任何帮助。

2 个答案:

答案 0 :(得分:0)

听起来像角度侧的错误路由器配置导致路由循环。我会仔细检查你的app.module.ts路线。您还可以添加enableTracing来诊断路由:

{ enableTracing: true }

<强> app.module.ts

const appRoutes: Routes = [
  { path: 'crisis-center', component: CrisisListComponent },
  { path: 'hero/:id',      component: HeroDetailComponent },
  {
    path: 'heroes',
    component: HeroListComponent,
    data: { title: 'Heroes List' }
  },
  { path: '',
    redirectTo: '/heroes',
    pathMatch: 'full'
  },
  { path: '**', component: PageNotFoundComponent }
];

@NgModule({
  imports: [
    RouterModule.forRoot(
      appRoutes,
      { enableTracing: true } // <-- Add this to debug routes
    )
  ]
})
export class AppModule { }

答案 1 :(得分:0)

好的,发现了问题:

路由请求未由服务器NginX配置处理,该配置在无人体204中解析,Chrome开发者工具将其丢弃为无效,使其看起来没有请求。

删除204错误处理后,Chrome中的错误显示为404,因此不是Angular问题:)