File runtime-service-worker.js?v=2 is causing 404 errors. What is loading this and why it\'s not found?
Background:
我刚刚将客户的网站从开发服务器移动到生产服务器。移动站点后,我发现Chrome正在加载runtime service worker。js?v=2,每次加载页面时,它都会获取和缓存文件。该文件应位于根文件夹(即我的网站)中。com/运行时服务工作者。js?v=2,但实际上不存在。所以我想它是动态生成的,或者临时复制到那里。
When it occurs:
这只发生在Chrome中,我只有在登录时才能获得一些控制台输出。输出是文件和脚本正在执行的调试输出。但即使没有登录,该站点也会尝试加载该文件,并给出404错误。
当站点位于开发服务器上时,不会发生这种情况。在网站迁移之后,我只对主题文件、URL更新和更新的WP以及一些插件进行了一些小的代码更新。
这是一个问题,因为该网站有404检测器,用于检测试图在过时插件中发现漏洞的机器人。当有足够的404错误时,IP将被阻止。现在,一些游客因为这个问题被封锁了。我暂时禁用404检测,直到问题解决。
Console output:
以下是登录时控制台输出的一些示例:
RTSW: caching my-site.com/?dm_ajaxCall=true in addition to my-site.com/
runtime-service-worker.js?v=2:244 RTSW: fetched and cached:
runtime-service-worker.js?v=2:245 my-site.com/ in druntime-v2_35-site-pages-3675989298-2010869941
runtime-service-worker.js?v=2:244 RTSW: got from cache:
runtime-service-worker.js?v=2:245 my-site.com/wp-includes/js/jquery/jquery.min.js?ver=3.5.1
runtime-service-worker.js?v=2:245 my-site.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.3.2
runtime-service-worker.js?v=2:245 my-site.com/wp-content/plugins/bt_cost_calculator/jquery.dd.js?ver=5.6
runtime-service-worker.js?v=2:245 my-site.com/wp-content/plugins/woocommerce/assets/js/jquery-blockui/jquery.blockUI.min.js?ver=2.70
What have I tried so far:
该网站正在使用我自己的主题,它不包括此文件或脚本。我一个接一个地禁用了每个插件,但运气不好。
我试着在谷歌上搜索这个,但找不到任何相关信息。
非常感谢您的帮助。
<小时/>
Edit: Found the reason and workaround solution
答案如下所示。
最合适的回答,由SO网友:Antti Tolvanen 整理而成
在做了一些研究之后,我找到了造成这种情况的原因。
在我将客户端的网站移动到其域之前,他们以前的网站位于旧服务器中。当我们开始使用新网站时,我们开始使用另一台服务器。
似乎以前的网站Google\'s Service Worker. 我的浏览器(还有其他一些浏览器)包含了来自上一个网站的cookie,其中包括这个服务人员。
这个服务人员对我来说并不熟悉,但很明显,它的一个特点是,它会尝试将网站内容保存到设备上,以便脱机使用。因此,在我的例子中,浏览器还尝试从不再存在的文件加载脚本。一些脚本是从Google的服务器加载的,但显然这一个文件位于客户端以前的服务器上。我的兄弟从缓存中加载了文件,所以我没有找到它。
在浏览器中删除Service Worker cookie解决了问题,但仅在我的浏览器中。现在,我想知道是否有一种方法可以从访问过以前网站的访问者的浏览器中删除cookie。只要访问者拥有服务工作者cookie,他们的浏览器就会尝试获取一个不再存在的文件。