当前位置: 首页 > 面试题库 >

使用CRA React进行缓存清除

易淳
2023-03-14
问题内容

当我更新网站时,请运行npm run build并将新文件上传到服务器,但我仍在查找网站的旧版本。

没有React,我可以看到带有缓存清除功能的新版本站点。我这样做:

上一个档案

<link rel="stylesheet" href="/css/styles.css">

新文件

<link rel="stylesheet" href="/css/styles.css?abcde">

我该怎么做或通过create react app实现缓存清除?

在GitHub上有很多关于此的react app线程,但是没有人给出正确/简单的答案。


问题答案:

编辑:create-react-app v2现在默认已禁用服务工作者

此答案仅适用于CRA v1

这可能是由于您的网络工作者。

如果您查看index.js文件,您会看到

registerServiceWorker();

从来没有想过它做了什么?如果我们查看从中导入的文件,可以看到

// In production, we register a service worker to serve assets from local cache.

// This lets the app load faster on subsequent visits in production, and gives
// it offline capabilities. However, it also means that developers (and users)
// will only see deployed updates on the "N+1" visit to a page, since previously
// cached resources are updated in the background.

// To learn more about the benefits of this model, read {URL}
// This link also includes instructions on opting out of this behavior.

如果要删除网络工作者,请不要仅删除该行。导入注销并在您的文件而不是注册中调用它。

import { unregister } from './registerServiceWorker';

然后打电话

unregister()

PS当您注销时,至少需要刷新一下才能使其正常工作



 类似资料:
  • 我在使用AFNetworking和ETag值实现缓存时遇到问题。我的服务器为每个请求返回Cache-Control和ETag头值。但如果我再次请求相同的资源,AFNetworking将不会添加ETag。我应该手动保存每个响应的etag并将其附加到下一个请求吗? 在应用程序委托中,我已经设置了缓存对象: 另外,我使用的是AFHTTPRequestSerializer的默认缓存策略。 有什么想法吗?问

  • 问题内容: 我需要在应用程序中缓存一些数据,并且我正在考虑使用Ehcache。我有几个问题: 我是否需要其他服务器进行Ehcache? 我是否需要其他客户端来使用Ehcache? Ehcache如何与多个实例一起使用?甚至可以使用Ehcache创建类似共享缓存的内容吗? 问题答案: 我是否需要其他服务器进行Ehcache? 您可以在独立模式下使用Ehcache。在这种拓扑中,缓存数据保存在应用程序

  • 至 然后,在我的文件中,我为每个环境添加了前缀,如下所示 对于开发人员 如何清除特定环境的缓存?

  • void clear_cache(string template [, string cache id [, string compile id [, int expire time]]]) This clears the cache for a specific template. If you have multiple caches for this template, you can cl

  • 本文向大家介绍CodeIgniter启用缓存和清除缓存的方法,包括了CodeIgniter启用缓存和清除缓存的方法的使用技巧和注意事项,需要的朋友参考一下 Codeigniter支持缓存技术,以达到最快的速度。尽管CI已经相当高效了,但是网页中的动态内容、主机的内存CPU和数据库读取速度等因素直接影响了网页的加载速度。依靠网页缓存,你的网页可以达到近乎静态网页的加载速度,因为他们将程序输出的结果保

  • 问题内容: 我试图按照此处的建议从缓存中删除模块。 在文档中,我们阅读: require.cache 目的 需要时将模块缓存在此对象中。 通过从该对象中删除键值,下一个require将重新加载模块。 因此,我创建了一个包含一行的名为的文件: 然后我需要通过外壳: 那么,为什么不返回时,我的文件中包含和清除缓存? 进行调试时,我发现有一个对象在执行时未清除。 问题答案: 只是公开的缓存对象引用,不会