You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IIS托管静态站点时,文件更新后如何刷新缓存?

IIS静态站点缓存刷新的简便解决方案

一、修复「更改后缓存」的原生配置

你提到的「更改后缓存」未达预期,大多是配置细节疏漏,按以下步骤重新设置:

  • 打开IIS管理器,定位目标站点,双击「输出缓存」
  • 点击右侧「添加」,选择需要缓存的文件类型(.html、.js、.css等)
  • 在「缓存设置」中,勾选「启用缓存」和「更改后缓存」,同时:
    • 将「过期时间」设为长周期(如365天),让客户端长期缓存静态资源
    • 取消勾选「可变内容」(静态文件属于不可变内容)
  • 关键操作:切换到「缓存存储」选项卡,选择「磁盘」存储缓存(默认内存存储不会自动感知文件修改)
  • 应用配置后,IIS会自动检测文件的最后修改时间,内容更新时自动返回新资源并同步更新缓存

二、静态资源版本化(彻底避免内容过时)

这是比依赖IIS缓存更可靠的方案,无需手动刷新缓存:

  • 给静态文件添加哈希后缀,例如将app.js重命名为app.f9d23b.js,style.css改为style.7a8c1d.css
  • 更新HTML中的资源引用路径,指向带哈希的新文件
  • 优势:客户端会永久缓存带哈希的文件,只要文件名变更就会自动拉取新内容,从根源避免过时问题,无需操作IIS缓存

三、手动快速刷新缓存的方法

如果需要临时强制清空缓存,无需PowerShell,直接通过IIS管理器操作:

  • 打开站点的「输出缓存」面板,右侧点击「刷新缓存」,可选择刷新整个站点或指定文件类型的缓存
  • 或直接回收站点对应的应用池:右键目标应用池,选择「回收」,即可清空该应用池的所有缓存

四、「更改后缓存」失效的常见排查点

若配置后仍无效果,检查以下内容:

  • 文件的最后修改时间是否真的更新?部分部署工具会保留原文件修改时间,导致IIS无法检测到变化
  • 是否启用了「静态内容压缩」?需确保压缩后的缓存文件也关联原文件的修改时间
  • 有没有第三方缓存规则(如URL Rewrite的缓存配置)干扰原生输出缓存?可临时禁用测试

内容的提问来源于stack exchange,提问作者DudeMcMan123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 07:52:20