Cache-Control
有遇到客戶的網站會一直破圖,可是使用chrome無痕模式就沒有破圖現象產生,因此懷疑是Cache沒有期限造成client緩存資料都已經清除掉了,卻還是不更新資訊。
使用Fidder$查詢圖片資訊發現沒有Cache相關的設定在裡面
方法一直接操作IIS進行Cache設定
方法二在config加入以下資訊
<configuration>
<system.webServer>
<staticContent>
<clientCache cacheControlCustom =“Private”/>
</ staticContent>
</system.webServer>
<system.webServer>
<staticContent>
<clientCache cacheControlCustom =“Private”/>
</ staticContent>
</system.webServer>
</ configuration>
可是我這樣設置完後,網站圖片還是沒有吃到Catch的相關設定值。
這時候找到了這篇http://stackoverflow.com/questions/2195266/how-to-configure-static-content-cache-per-folder-and-extension-in-iis7裡面有說明可以對特定資料夾設定Cache設定
馬上設定看看
<location path="images">
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="00:00:15" />
</staticContent>
</system.webServer>
</location>
插入後會變成這樣
<system.webServer>
<!--
<defaultDocument>
<files>
<clear />
<add value="default.aspx" />
</files>
</defaultDocument>
<staticContent>
<clientCache cacheControlMode="NoControl" />
</staticContent>
</system.webServer>
<location path="Image">
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="00:00:15" />
</staticContent>
</system.webServer>
</location>
然後再去看結果~各位觀眾 五支菸。結果就出來了。
參考:
保哥IIS Cache-Control時間設定:http://blog.miniasp.com/post/2009/04/12/How-to-setup-Client-side-Cache-in-IIS.aspx
MDN Cache-Control:https://developer.mozilla.org/zh-TW/docs/Web/HTTP/Headers/Cache-Control
沒有留言:
張貼留言