服务工作者在React应用程序中刷新后导致空白页面

我有一个部署到Azure的Node应用程序,一个testing分支通向一个分段实例,一个master分支指向了分发部署。 我的应用程序可以在本地应用程序的所有实例上正常工作,但是生产和临时存在一个问题,如果它们已经被caching,它们将不会加载,并且在刷新之后将显示为空白,最后将在caching重置时正常工作。

每当我刷新生产页面,它只是空白。 服务人员正在运行(我可以在chrome serviceworkers-内部工具中看到它),但该页面从不加载。 生成的文件引用是正确的。 你可以看到这里发生的事情的一个例子: Live Site ,然后你也可以看到testing站点也失败了,部署了完全相同的代码: testing站点 。

ServiceWorker实现的整体是从create-react-app开箱的。 我已经花了好几个小时的时间来尝试跟踪这个bug,在反应样板和创build反应应用程序回购下的各种GitHub问题,没有一个真正除了限制页面caching之外的任何地方,我试图做与无济于事有:

的index.html

 <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"/> <meta http-equiv="Pragma" content="no-cache"/> <meta http-equiv="Expires" content="0"/> 

你可以find任何代码,你有任何代码在回收的托pipe所有这些代码的问题。

我只是用React / Node弄湿了自己的脚,所以我在墙上,并没有真正看到如何解决这个问题,而没有完全取消ServiceWorker的注册。

编辑:我完全从index.js文件中删除ServiceWorker代码,现在重新加载没有任何问题。 是否需要完成一个步骤才能让ServiceWorker正确地从caching中重新加载页面?

当您在Azure App Service上使用socket.io时,您可能需要通过Azure门户启用Web套接字

在这里输入图像说明