本文介绍了需要刷新之前访问的Gatsby站点才能查看更改的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在Netlify上托管了一个Gatsby站点。当我部署一个新版本时,在页面刷新之前,我对站点所做的更改是不可见的。有人知道为什么会发生这种情况吗?
我使用gatsby-plugin-offline
&;gatsby-plugin-manifest
。我看到我可以安装gatsby-plugin-remove-serviceworker
插件来删除服务工作者,但如果可能的话,我想继续使用它。
这是一个很难搜索的问题,因为我得到了有关本地目录中.cache
文件夹的结果
推荐答案
问题:您的服务人员仍显示旧页面
在Gatsby中,服务人员被编程为在导航时更新。服务工作者通过使用gatsby-plugin-offline
插件自动加入您的站点。
问题是,当用户访问主页并且没有进一步导航时,将看不到任何更新。如果希望页面在首次访问时自动刷新并使旧缓存无效,则需要触发它。
解决方案:
您可以使用官方Gatsby Browser API触发更新服务工作者。
如果您的gatsby-config.js
中有gatsby-plugin-offline
,请将此行添加到gatsby-browser.js
。
// trigger an immediate page refresh when an update is found
export const onServiceWorkerUpdateReady = () => window.location.reload();
这里是来自官方GitHub存储库的一些关于此问题的background information。
这篇关于需要刷新之前访问的Gatsby站点才能查看更改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!