我遇到了这个奇怪的问题,我的Chrome浏览器不断加载我的网站的旧版本,其代码甚至不再存在于我的服务器上。我认为这是一个典型的缓存问题。
我尝试清理浏览器缓存,使用igcognito模式,并清理DNS缓存。旧的缓存页面仍在加载中。
这个问题似乎已经在谷歌集团讨论了三年,但仍然没有解决方案。 https://productforums.google.com/forum/#!topic/chrome/xR-6YAkcASQ
使用firefox或任何其他网络浏览器可以很好地工作。
它不会发生在我身上。我的所有同事在我的网站上遇到同样的问题。
答案 0 :(得分:8)
<?php Header("Cache-Control: max-age=3000, must-revalidate"); ?>
您可以实现必须是索引文件中第一行代码的PHP脚本。它是通常由Web服务器发布的http标头。您还可以重命名被视为“陈旧”的资源。本教程将为您提供更多详细信息。 https://www.mnot.net/cache_docs/
答案 1 :(得分:3)
我不确定我是否正确理解了您的问题,但是我遇到了类似的事情,而不是清除缓存,而是通过执行以下操作禁用了它: 打开chrome,然后转到您的网站 按Command + Option + C(Mac) 既然您已打开chrome的DevTools,请转到主菜单,其中显示:Elements Console Sources ... 单击显示为网络的菜单元素 确保已选中“禁用缓存”复选框 然后重新加载页面而不关闭DevTools 这对我有用。 让我知道它是否对您有用:)
答案 2 :(得分:1)
查看新版网站的短期修复通常是清除缓存并重新加载,因为某些原因,这并不总是适用于Chrome。这个短期解决方案不会为您网站上的每个用户解决问题,但它只会让您看到您网站的新版本。
向CSS和JS文件添加版本号将允许您和其他所有用户查看您网站的最新版本。版本号将强制任何浏览器不从用户的个人计算机高速缓存加载,而是在服务器上加载实际文件,如果版本号与用户高速缓存中的版本号不同。 / p>
因此,如果您的服务器上有这些文件:
ExJS.js
ExCSS.css
并将其更改为:
ExJS.js?v=1.01
ExCSS.css?v=1.01
这些文件的新版本将在任何浏览器中加载。
通常情况下,浏览器会始终从服务器加载HTML文件,但您可以使用一些HTML元标记来确保为任何用户加载最新的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" />
还有一些方法可以确保其他语言的文件也始终加载最新版本,这将在本文中讨论:
How to add version number to HTML file (not only to css and js files)
答案 3 :(得分:0)
更改图片名称并在html文件中更改必要的图片名称..发现我的网站快速修复
答案 4 :(得分:0)
您可以按Inspect,然后按“网络”并选中“禁用缓存”。
答案 5 :(得分:0)
我遇到了同样的问题,我还尝试在我的 JSP 页面上禁用缓存
<% response.setHeader("Cache-Control","no-cache");
response.setHeader("Pragma","no-cache");
response.setDateHeader ("Expires", 0); %>
但这没有帮助。
这是 google chrome 和 Chrome 浏览器的一个已知问题,即使您清除了缓存和 cookie。
但是对于大多数用户来说可能会也可能不会发生。
此外,自过去 9-10 年以来,这个问题一直没有得到解决。
因此,出于测试目的,我强烈建议使用 Mozilla Firefox 或 Opera。
但是,听起来您的应用程序仅限于某些浏览器以获得最佳体验,并且可能无法让企业/最终用户信服。
话虽如此,我们大多数人可能会也可能不会发生这种缓存问题。
答案 6 :(得分:0)
您应该能够通过重置 Chrome 来解决问题。这是我发现的唯一清除这种情况的方法 - 在撕掉我的头发半天之后。
在发现这个之前,我尝试过清除缓存,删除各种缓存目录的内容等,但徒劳无功。
[截至今天 2021 年 5 月 3 日]您可以通过点击“设置 > 高级 > 重置和清理 > 将设置恢复为原始默认值”来执行此操作。请注意,这不会删除任何书签,但会将您从您登录的所有帐户中注销。
答案 7 :(得分:-1)
您有两个选择
a)将指纹视为过期资源,例如
<script src="js/app-4829382839238882882bb3442bbbbdhh3kh3.js" type="text/javascript"></script>
b)在Web服务器上添加诸如Cache-Control,Expires之类的缓存控件标头。
上的精彩读物