我必须在 IIS 7 中为应用程序的静态文件设置到期时间。使用以下对话框:我将其设置为 10 天。
但是,当我使用 Chrome 中的 PageSpeed 插件查看我的页面分析时,我发现文件没有过期。
我是否还需要在我的应用程序配置中做其他事情?
答案1
查看 web.config 的 staticContent 元素:
<system.webServer>
<!-- StaticContent requires that the machine config section be unlocked: appcmd unlock config /section:staticContent-->
<staticContent>
<clientCache cacheControlCustom="private" cacheControlMode="UseMaxAge" cacheControlMaxAge="0.02:00:00" />
</staticContent>
</system.webServer>
http://msdn.microsoft.com/en-us/library/ms689506%28v=vs.90%29.aspx
http://www.iis.net/configreference/system.webserver/staticcontent/mimemap
答案2
这IIS 中的设置控制返回页面的过期时间,而不是页面包含并尝试加载的其他资源(在您的情况下是外部 JS 文件)。如果您检查页面的过期标签,它应该会显示过期日期。
您正在查看的 IIS 设置不会控制不直接属于响应流的其他文件的过期时间。对于 JS 文件,您为什么要尝试让它们在 10 天后过期?浏览器应该识别出它们不再是当前版本,并将下载最新版本,否则它将显示HTTP 304 Not Modified
并使用本地缓存的副本。