Chrome/Internet 资源管理器浏览器刷新(F5、ctrl+R、刷新箭头等)无法使用远程服务器上的 Angular (2+) 项目
Chrome/Internet explorer browser refresh (F5, ctrl+R, refresh arrow etc.) not working using Angular (2+) project on remote server
我对远程服务器上部署的 Angular (2+) 项目的简单手动刷新(F5、ctrl+R、刷新箭头等)操作有问题。
在本地测试项目(开发和构建产品测试)工作完美,即使部署到我们的实习服务器,刷新工作正常。
在远程服务器上,任何刷新(F5、ctrl+R 等)都将被忽略。我没有收到任何错误,没有找到任何页面,什么都没有 - 浏览器只是停留在当前页面上,没有任何更改或刷新。
在网络选项卡中,它甚至不向服务器发送请求。
我可以看到 favicon 闪烁了一毫秒(所以前端注册了一些东西)。
我可以强制刷新的唯一方法是手动更改 URL。
PS。唯一可见的区别是远程服务器运行在 https:// 协议上。
我在 google 上搜索了几个小时,但没有任何帮助。
听起来 angular 端的错误路由器配置导致了路由循环。我会仔细检查您的 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 { }
好的,找到问题了:
路由请求未由服务器 NginX 配置处理,该配置在无主体 204 中解析,Chrome 开发人员工具将其丢弃为无效,使其看起来像没有发出请求。
删除 204 错误处理后,错误在 Chrome 中显示为 404,因此不是 Angular 问题 :)
我对远程服务器上部署的 Angular (2+) 项目的简单手动刷新(F5、ctrl+R、刷新箭头等)操作有问题。
在本地测试项目(开发和构建产品测试)工作完美,即使部署到我们的实习服务器,刷新工作正常。
在远程服务器上,任何刷新(F5、ctrl+R 等)都将被忽略。我没有收到任何错误,没有找到任何页面,什么都没有 - 浏览器只是停留在当前页面上,没有任何更改或刷新。
在网络选项卡中,它甚至不向服务器发送请求。
我可以看到 favicon 闪烁了一毫秒(所以前端注册了一些东西)。
我可以强制刷新的唯一方法是手动更改 URL。
PS。唯一可见的区别是远程服务器运行在 https:// 协议上。
我在 google 上搜索了几个小时,但没有任何帮助。
听起来 angular 端的错误路由器配置导致了路由循环。我会仔细检查您的 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 { }
好的,找到问题了:
路由请求未由服务器 NginX 配置处理,该配置在无主体 204 中解析,Chrome 开发人员工具将其丢弃为无效,使其看起来像没有发出请求。
删除 204 错误处理后,错误在 Chrome 中显示为 404,因此不是 Angular 问题 :)