浏览器从服务器检索的文件应尽可能长时间存储在浏览器的缓存中,以帮助最大限度地减少服务器往返。
但是 IIS 如何知道什么实际上是静态内容 什么不是呢?
它只是图像,css,js吗并不是ASPX,ashx……?
在哪里我是否可以在 IIS 中看到已被视为静止的还有什么不是?
那么,如果页面声明了
<%@ OutputCache
header(不带location
),那么场景又如何呢?其中的图像、css、js src 文件是否也被输出缓存了?作为最佳实践,我应该将未来一年设置为最大到期时间。我应该将其用作网站上所有静态内容的默认设置
所以我这样做了:
但后来,经过催促OK
,我找不到 摘要菜单显示:给谁 我已经放了响应标头(在本例中是:css
文件夹)。
现在,为了看到该css
文件夹已经应用了响应标头 - 我必须转到该css
文件夹再次 -->
Http Response Header-->
设置 Common Headers-->
然后我就看到了。它没有写在 web.config 中。
但如果我对文件执行此操作(Login.aspx
例如):我确实在 web.config 中看到它:
<configuration>
<location path="Login.aspx">
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseExpires" cacheControlMaxAge="1.00:00:00" httpExpires="Fri, 15 Feb 2013 00:00:00 GMT" />
</staticContent>
</system.webServer>
</location>
</configuration>
答案1
按 Windows+R 并粘贴:
notepad %systemroot%\System32\inetsrv\config\applicationHost.config
这将显示 IIS 的主配置文件:
您在 IIS UI 中所做的大多数未写入 web.config 的更改都保存在这里。
最后是一个“处理程序”节点,它定义如何处理各种文件类型,路径属性中未列出的所有扩展名都被视为静态文件,并由最后一个条目处理:“name =“StaticFile”'
您对缓存的更改将进一步在“站点”或“位置”节点内进行。
不要直接更改此文件,因为无论如何由于 UAC 您都无法进行更改。
如何选择缓存策略取决于您的内容。您真的能确定某些资源一年内不会改变吗?
OutputCache 指令针对的是页面本身,任何链接的内容都是由客户端独立请求的,因此您也必须为它们设置缓存。