【发布时间】:2011-07-28 05:15:52
【问题描述】:
我正在开发一个网站,但每次我做一些小的更改时,我都必须执行一次硬刷新才能看到更改。
这里明显的问题是用户可能永远不会进行硬刷新,因此他/她不会立即看到效果。另外,有时当我更改样式表时, 如果不进行硬刷新,网站看起来就像一团糟。
我能做什么?
【问题讨论】:
标签: page-refresh
我正在开发一个网站,但每次我做一些小的更改时,我都必须执行一次硬刷新才能看到更改。
这里明显的问题是用户可能永远不会进行硬刷新,因此他/她不会立即看到效果。另外,有时当我更改样式表时, 如果不进行硬刷新,网站看起来就像一团糟。
我能做什么?
【问题讨论】:
标签: page-refresh
您可以通过添加缓存控制元标记来强制页面不缓存:
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">
您还可以通过添加版本获取参数来防止缓存样式表:
<link rel="stylesheet" href="mystyles.css?v=1" type="text/css" />
增加版本号以强制加载新版本。
【讨论】:
HTTP 标头,那么设置这些标头而不是依赖于 <meta> 标签会更干净.此外,使用“真实的东西”(实际的标题)也适用于样式表和其他非 HTML 资源(JS、imgs 等),没有丑陋的v 参数。
code type="text/css" media="screen" />code
If-Modified-Since(查找)标头,并且您的文件具有良好的时间戳。该标头存在的唯一目的是满足您的要求:启用缓存,但如果资源已被修改,请确保再次提供资源。
那么,您的设计更改(外部样式表?)没有立即显示?
这可能与浏览器缓存有关。 您的文件已被缓存,这是一件好事。如果要使缓存无效,可以向外部文件添加一个参数,如下所示:
<link rel="stylesheet" type="text/css" href="http://sstatic.net/stackoverflow/all.css**?v=f023310c4326**">
这个很棒的软件的开发者知道这一切。
【讨论】: