有没有一种方法可以让我把一些代码放在我的页面上,这样当有人访问一个网站时,它就会清空浏览器缓存,这样他们就可以查看更改了?
使用语言:ASP。净,VB。NET,当然还有HTML, CSS和jQuery。
有没有一种方法可以让我把一些代码放在我的页面上,这样当有人访问一个网站时,它就会清空浏览器缓存,这样他们就可以查看更改了?
使用语言:ASP。净,VB。NET,当然还有HTML, CSS和jQuery。
当前回答
您是想清除缓存,还是只是确保当前(已更改的?)页面没有缓存?
如果是后者,那就应该如此简单
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
其他回答
查看缓存控制和过期的META标签。
< meta http-equiv =" cache-control " content =" no-cache "> <META HTTP-EQUIV="EXPIRES" CONTENT="Mon, 22 july 2002 11:12:01 GMT">
另一个常见的做法是在请求文件的末尾附加不断变化的字符串。例如:
<脚本类型=“文本/javascript”“src=”主。js?v = 12392823 " > < /脚本>
这是我在一个使用PHP的应用程序中使用的简单解决方案。
所有JS和CSS文件都放在一个有版本名的文件夹中。示例:"1.0.01"
root\1.0.01\JS
root\1.0.01\CSS
在那里创建一个Helper并定义版本号
<?php
function system_version()
{
return '1.0.07';
}
和链接JS和SCC文件如下
<script src="<?= base_url(); ?>/<?= system_version();?>/js/generators.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="<?= base_url(); ?>/<?= system_version(); ?>/css/view-checklist.css" />
每当我对任何JS或CSS文件进行更改时,我都会在Helper中更改System Verson并重命名文件夹并部署它。
<meta http-equiv="pragma" content="no-cache" />
参见https://stackoverflow.com/questions/126772/how-to-force-a-web-browser-not-to-cache-images
对于静态资源,正确的缓存是使用带有每个部署或文件版本值的查询参数。这将在每次部署后清除缓存。
/Content/css/Site.css?version={FileVersionNumber}
这是ASP。NET MVC的例子。
<link href="@Url.Content("~/Content/Css/Reset.css")?version=@this.GetType().Assembly.GetName().Version" rel="stylesheet" type="text/css" />
不要忘记更新程序集版本。
对于webpack用户:-
我在webpack配置中添加了chunkash。这解决了每次部署时缓存失效的问题。我们还需要注意index.html/ asset。清单不是缓存在你的CDN或浏览器。在webpack配置中的块名配置将看起来像这样:-
文件名:[chunkhash] - $ {Date.now ()} . js
或者如果你使用contenthash那么
文件名:[contenthash] - $ {Date.now ()} . js