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

Windows Server IIS托管动态HTML页面JSON更新不显示问题求助

解决IIS托管页面无法读取JSON更新值的问题

我之前也碰到过一模一样的情况——本地直接打开页面能正常读取JSON的最新内容,放到IIS上就死活不更新,大概率是IIS的缓存配置、MIME类型或者文件权限在搞鬼,咱们一步步排查解决:

1. 先搞定IIS的静态文件缓存

IIS默认会给静态文件(比如JSON)加缓存,这会导致页面读取的是旧的缓存版本,根本没去读你更新后的文件:

  • 打开IIS管理器,找到你的目标网站,双击输出缓存
  • 右侧操作栏点添加,在弹出窗口里,文件扩展名填.json,缓存行为直接设为禁止缓存(或者把过期时间设成1分钟这种极短的时长)
  • 应用设置后,重启网站再测试

2. 确认JSON的MIME类型配置

如果IIS没正确配置JSON的MIME类型,请求JSON文件时可能返回404或者错误的内容类型,页面自然读不到正确内容:

  • 在IIS管理器里,找到你的网站,双击MIME类型
  • 检查有没有.json的条目,对应的MIME类型应该是application/json
  • 如果没有,点右侧添加,扩展名填.json,MIME类型填application/json,保存后重启网站

3. 检查文件权限是否到位

IIS的应用程序池身份可能没有读取JSON文件的权限,导致页面拿不到最新数据:

  • 找到网站根目录,右键那个JSON文件,选属性 -> 安全选项卡
  • 看看有没有IIS_IUSRS或者你的应用程序池身份(比如DefaultAppPool)的权限,必须要有读取权限
  • 如果没有,点编辑 -> 添加,输入IIS_IUSRS,勾选读取权限后保存

4. 给前端请求加个“防缓存”小技巧

有时候哪怕IIS端关了缓存,前端的AJAX请求自己也会缓存响应:

  • 打开浏览器开发者工具(F12),切到网络标签,刷新页面看JSON文件的请求头,确认Cache-Control是不是no-cache或者max-age=0
  • 如果不是,就在你的AJAX请求里加个时间戳参数,比如:fetch('data.json?t=' + Date.now()),强制每次请求都拉取最新的文件

5. 最后重启IIS应用程序池和网站

很多配置更改后需要重启才生效,右键你的网站选管理网站 -> 重启,或者直接重启对应的应用程序池,确保所有设置都生效

我之前就是踩了IIS默认缓存JSON的坑,设置禁止缓存后就完全正常了,按上面的步骤排查应该能解决你的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:42:40