在 IIS 7 中禁用静态内容缓存

Lee*_*son 10 iis-7

我是一名开发人员,在 Windows Server 2008 R2 上的 IIS 7 中遇到了一个相对简单的问题。问题是 IIS 7 过度缓存服务器上的所有静态内容。它缓存所有 .html 和 .js 内容,除非我 iisreset,否则不会注意到磁盘上的内容何时更改。

我尝试了以下方法:

  1. 删除浏览器中的本地缓存(我 99% 肯定这是服务器缓存问题)
  2. 在 IIS Admin 中的 OutputCaching 添加一个 .html 扩展名并取消选中“用户模式缓存”并取消选中“内核模式缓存”
  3. 在 IIS Admin 中的 OutputCaching 添加一个 .html 扩展名并检查“用户模式缓存”并选择“阻止所有缓存”的单选按钮
  4. 在 IIS Admin 中编辑输出缓存功能设置并取消选中“启用缓存”和“启用输出缓存下的内核缓存”。
  5. 运行 "C:\Windows\System32\inetsrv\config\appcmd set config "SharePoint - 80" -section: system.webServer/caching -enabled:false"
  6. 查看 applicationHost.config 并禁用我能找到的与缓存相关的任何内容。

似乎没有任何效果。我变得非常沮丧。有人可以帮忙吗?

Viv*_*har 5

我真的很想system.webServer/caching从你的 applicationhost.config 和 web.config 中看到部分。如果可以,请粘贴它们。通过运行上面的 appcmd 命令,您刚刚禁用了用户模式缓存,但仍然启用了内核缓存。此外,如果您真的想在网站或服务器级别禁用缓存,只需更改以下内容:

<system.webServer>
    <caching enabled="false" enableKernelCache="false" />
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

您还可以使用 Fiddler 工具来验证内容是否真的被缓存,即是否返回 304。