由于缓存,网站html不会为用户更新

Tom*_*esh 10 html caching browser-cache

我正在建立一个网站,我的用户正在遇到网站缓存问题.我开发了我的网站,并设置了chrome开发人员工具来禁用我的网站的缓存以进行开发.问题是当我向prod发布一个新的更改时,我的所有用户都因为浏览器缓存而无法获得更新.当我在朋友的计算机上手动删除我的网站的缓存时,它可以工作,但我显然不能指望每个人都这样做以获得新的更新.无论如何,我是否可以通过版本控制来解决这个问题?我环顾四周但似乎找不到任何东西.

编辑:我知道我可以防止缓存,但我不想完全阻止缓存,这似乎是一个糟糕的设计

tax*_*ala 13

缓存的资源是什么?我怀疑js/css文件,处理这个问题的好方法是在这些资源的路径中添加带有版本的查询参数,以便在版本更改时强制浏览器加载新文件,如下所示:

<script type="text/javascript" src="your/js/path/file.js?v=1"></script>
<link href="/css/main.css?v=1" media="screen,print" rel="stylesheet" type="text/css">
Run Code Online (Sandbox Code Playgroud)

当您发布网站的新更新时,请按以下方式更换版本:

<script type="text/javascript" src="your/js/path/file.js?v=2"></script>
<link href="/css/main.css?v=2" media="screen,print" rel="stylesheet" type="text/css">
Run Code Online (Sandbox Code Playgroud)

浏览器将文件是一个新文件,它将更新缓存.希望这可以帮助.

要禁用html缓存,可以按如下方式将metatag添加到文件中:

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
Run Code Online (Sandbox Code Playgroud)

但是这将完全禁用具有此metatag的html文件的缓存,我认为没有办法像js/css文件一样轻松处理这个问题,您可以将metatag设置为在将来的某个日期刷新html.这篇文章描述了如果您需要更多信息,如何使用该元标记:

http://www.metatags.info/meta_http_equiv_cache_control