0

我有一个要更改的页面,但是只有在我重置浏览器缓存时才能看到更改。有什么我可以添加到我的 html 中的东西吗?

4

5 回答 5

1

如果要查看 css 或 js 更改,一种方法是将 _versionNo 附加到每个版本的 css/js 文件中。例如

script_1.0.css script_1.1.css script_1.2.css 等

您可以查看此链接以了解它是如何工作的。

来源:强制浏览器清除缓存

于 2013-03-22T21:44:25.527 回答
1

您应该能够使用带有“元”标签的纯 HTML 来做到这一点。元标记属于“标题”标记,用于许多不同的事情,包括防止缓存和事实上的内容过期。

<meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="Expires" content="-1" />

这是 2 个很好的标签。好的浏览器应该能识别它们。

于 2013-03-22T21:52:08.493 回答
0

我有时使用的一个技巧是向链接文件添加一个参数。因此,如果它是您要更新的样式表,请使用 screen.css?version=123 之类的内容。然后您可以将其更新为 124,浏览器将忘记它的缓存版本并再次获取它。注意不要在实时站点上过于频繁地更新——如果他们每次访问时都必须下载您的核心资源,您将毁掉用户的生活。

这样做意味着您只需处理文件的一个命名版本。这使它保持简单。

于 2013-03-22T21:48:53.153 回答
0

取决于您需要重新加载的资源。您可以使用许多不同的方法,一种常见的方法是使用版本控制或为请求添加时间戳。因此,当您获取需要绕过缓存的文件时,您可以使用时间戳来请求它们,例如(使用 C# + Razer 的示例)。

<script src="/Js/Functions.js?t=@DateTime.UtcNow.Ticks" type="text/javascript"></script>
于 2013-03-22T21:49:52.937 回答
0

没有办法从页面或其资源中真正清除浏览器的缓存。然而,有一些方法可以解决这个问题。

一种方法是将“版本号”附加到您的资源文件中。这会诱使浏览器认为该资源是一个不同的文件,并将再次下载它。这个问题有一些答案可以帮助你做到这一点。如果您使用 PHP/JSP/ASP.NET 等服务器端代码生成唯一的版本号以放入查询字符串中,则查询字符串方法可能是最容易控制和维护的。请注意,您必须将其构建为不会在生产中发生,否则您的用户将被迫在每个页面请求时重新加载资源,这将增加他们的加载时间。

由于您正在开发,另一种选择是在浏览器上使用一些开发人员工具来禁用缓存:

  • Chrome 开发者工具对此有原生支持。有关如何在 Chrome 中禁用缓存的信息,请参阅此问题的已接受答案。请注意,您必须在 Chrome 中打开您的开发人员工具才能使缓存禁用工作。
  • Firefox 有几种方法可以做到这一点,如SuperUser 上的这个问题中所列举的。
  • Internet Explorer 的开发人员工具也支持这一点,这在 SuperUser 上的这个问题中很明显。您可能必须保持开发人员工具处于打开状态才能保持有效。

如果您使用不同(或多种)浏览器进行开发/测试,您应该能够谷歌如何禁用相应浏览器上的缓存。

Firefox 和 Chrome 也支持++ 或 +Ctrl用于无Shift缓存页面重新加载。RShiftF5

于 2013-03-22T21:55:35.960 回答