对于远程服务器上已部署的Angular(2+)项目,我遇到了一个简单的手动刷新(F5,ctrl + R,刷新箭头等)操作的问题。
在本地测试项目(开发和构建prod testet)非常有效,即使部署到我们的实习服务器,刷新也能正常工作。
在远程服务器上,忽略任何刷新(F5,ctrl + R等)。我没有错误,没有找到任何页面,没有 - 浏览器只停留在当前页面上,没有更改或刷新。
在网络标签中,它甚至不向服务器发送请求。
我可以看到,favicon闪烁一毫秒(因此有些东西是前端注册的)。
我可以强制刷新的唯一方法是手动更改URL。
PS。唯一可见的区别是远程服务器运行在https:// protocol。
我在google上搜索了几个小时没有任何帮助。
答案 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问题:)