首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >部署新代码后强制缓存刷新

部署新代码后强制缓存刷新
EN

Stack Overflow用户
提问于 2017-03-28 20:19:16
回答 1查看 3.8K关注 0票数 0

在部署代码之后,我们遇到了客户端服务陈旧的js、css文件的问题。我们使用IIS作为我们的We服务器,我们的代码在ASP.Net 4.5中。我做了一些研究,并指出ETag与缓存控制一起工作.据我所知,ETag是由web服务器根据文件的日期时间戳自动生成的,因此我运行了以下步骤,以了解为什么系统不发送最新版本的js和css文件。

  1. 导航到我的网站,让我们调用demo.aspx。(现在假设demo.aspx包含对a.js、b.js和c.css的引用)
  2. 验证a.js、b.js和c.css文件是浏览器请求的,were服务器在我的网站上硬引用一个页面(Ctrl+ F5)后交付了这些文件。
  3. 在其他网页上点击
  4. 转到webserve和手动更新的文件(a.js、b.js和c.css更新这些文件的日期时间戳)
  5. 再次导航到demo.aspx。
  6. 这一次,我只看到向demo.aspx发出的请求,但没有看到对任何资源文件(a.js、b.js和c.css)的请求。

当我访问我的.js页面时,我不知道为什么不请求demo.aspx文件。

此外,在每次部署代码时,是否有一种简单的方法强迫客户端浏览器下载最新版本的.js和.css文件。根据我的研究,我发现一种方法是重命名.js和.css文件。请注意,这个想法对我们是行不通的。

我们确实在我们的项目中使用更新面板。不确定这是否与浏览器没有第二次请求js文件有关?

EN

回答 1

Stack Overflow用户

发布于 2017-03-28 20:41:13

一个广泛使用的技巧是添加一个查询字符串参数,该参数随cssjs文件的每个新版本而递增。

就像myScript.js?version=12。当数字发生变化时,浏览器将其视为一个新文件,并将其下载而不是从缓存中检索。

仅仅通过编辑文件来更改时间戳是行不通的,浏览器不会从服务器获得时间戳。您可以尝试从网站中保存图片或文件,它们都具有下载时间的时间戳。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43079171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档