2018年3月29日 星期四

IIS Cache-Control 暫存/緩存控制 設定


Cache-Control

有遇到客戶的網站會一直破圖,可是使用chrome無痕模式就沒有破圖現象產生,因此懷疑是Cache沒有期限造成client緩存資料都已經清除掉了,卻還是不更新資訊。

使用Fidder$查詢圖片資訊發現沒有Cache相關的設定在裡面



方法一直接操作IIS進行Cache設定


方法二在config加入以下資訊
<configuration> 
    <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>

然後再去看結果~各位觀眾 五支菸。結果就出來了。



參考:


沒有留言:

張貼留言

解決'Microsoft.ACE.OLEDB.12.0' 提供者並未登錄於本機電腦上的問題

  解決'Microsoft.ACE.OLEDB.12.0' 提供者並未登錄於本機電腦上的問題 環境 Server:Windows Server 2012 R2 Debug IDE: VS2019 Step1 確認是否有安裝Microsoft Access Dat...