【发布时间】:2026-02-19 21:25:01
【问题描述】:
我们遇到了在部署代码后为我们的客户提供过时的 js、css 文件的问题。我们使用 IIS 作为我们的网络服务器,我们的代码在 ASP.Net 4.5 中。我做了一些研究,发现 ETag 与 Cache-control 结合使用应该可以工作。据我了解,ETag 是由 Web 服务器根据文件的日期时间戳自动生成的,所以我运行以下步骤来查看为什么系统没有发送最新版本的 js 和 css 文件。
- 导航到我的网站到一个网页,我们称之为 demo.aspx。(现在假设 demo.aspx 包含对 a.js、b.js 和 c.css 的引用)
- 验证浏览器请求了 a.js、b.js 和 c.css 文件,并且在我硬引用我网站上的页面 (Ctrl + F5) 后,网络服务器交付了这些文件。
- 点击了其他网页
- 访问 webserve 并手动更新文件(a.js、b.js 和 c.css 以更新这些文件的日期时间戳)
- 再次导航到 demo.aspx。
- 这次我只看到了对 demo.aspx 的请求,而没有看到对任何资源文件(a.js、b.js 和 c.css)的请求。
我不知道为什么当我访问我的 demo.aspx 页面时没有请求 .js 文件。
另外,每次我部署代码时,是否有任何简单的方法可以强制客户端浏览器下载最新版本的 .js 和 .css 文件。根据我的研究,我确实发现一种方法是重命名 .js 和 .css 文件。请注意,此解决方案不适用于我们。
我们确实在我们的项目中使用更新面板。不确定这是否与浏览器第二次不请求 js 文件有关
【问题讨论】:
标签: asp.net iis-7 iis-7.5 browser-cache http-caching