我的应用程序中有几个js文件。当我更改这些文件中的任何内容时,我必须清除浏览器缓存以查看我的更改。为了避免这种情况,我使用了这个
<script type="text/javascript" src="js/main.js?cacheBust=20"></script>
但这似乎不起作用 我不想在URL中使用版本控制
<script type="text/javascript" src="js/main.js?v=1.2.3"></script>
问题是,如果我忘记更改版本,浏览器仍会使用旧的js文件 我只想知道是否有任何简单的方法,将当前浏览器的缓存js文件与应用程序的js文件进行比较。如果有任何更改,则加载新文件,否则使用旧文件文件。
我正在使用jquery和bootstrap处理ASP.net应用程序。我的应用程序中没有服务器端代码。所以如果有人能在客户端建议任何解决方案,我将不胜感激。谢谢你提前帮助!
答案 0 :(得分:0)
在Chrome中在'networ'k选项卡上打开开发人员工具(f12),从工具栏中选中'禁用缓存'。请注意,只要开发人员工具处于打开状态,这将只是一个有效状态。现在重新加载页面并注意页面加载而没有缓存。
在Firefox 中,打开开发人员工具,单击设置cog,转到“高级设置”并选中“禁用HTTP缓存”。 (与我认为的镀铬相同的通知)
根据哪种服务器设置,您可以设置包含各种选项的标题,例如到期日期以及在浏览器获得新版本时告诉浏览器。
node.js 在docs中,它指出了以下标题选项: if-modified-since , if-unmodified-since , last-modified
nginx - proxy_cache_revalidate指示NGINX在从源服务器刷新内容时使用条件GET请求。如果客户端请求缓存但是由缓存控制头定义的过期项,则NGINX在其发送到源服务器的GET请求的头中包含 If-Modified-Since 字段。这样可以节省带宽,因为只有在NGINX最初缓存文件时附加到文件的 Last-Modified 标题中记录的时间后,服务器才会发送完整项目。
appache如果响应的状态为200(OK),则响应中还必须至少包含一个“Etag”,“ Last-Modified ”或“< em> Expires “标头,或”Cache-Control:“标头的max-age或s-maxage指令,除非CacheIgnoreNoLastMod指令已被用于另外要求。