2008-09-19 25 views

回答

5

你可以嘗試這樣的事:

@ECHO OFF 
REM --------------------------------------------------------------------------- 
REM Caching - sets the caching on static files in a web site 
REM syntax 
REM  Caching.CMD 1 d:\sites\MySite\WWWRoot\*.CSS 
REM 
REM %1 is the WebSite ID 
REM %2 is the path & Wildcard - for example, d:\sites\MySite\WWWRoot\*.CSS 
REM _adsutil is the path to ADSUtil.VBS 
REM --------------------------------------------------------------------------- 

SETLOCAL 

SET _adsutil=D:\Apps\Scripts\adsutil.vbs 

FOR %%i IN (%2) DO (
    ECHO Setting Caching on %%~ni%%~xi 
    CSCRIPT %_adsutil% CREATE W3SVC/%1/root/%%~ni%%~xi "IIsWebFile" 
    CSCRIPT %_adsutil% SET W3SVC/%1/root/%%~ni%%~xi/HttpExpires "D, 0x69780" 
    ECHO. 
) 

它設置緩存值,每個CSS文件在網站根至5天,然後像這樣運行:

Caching.CMD 1 \site\wwwroot\*.css 
Caching.CMD 1 \site\wwwroot\*.js 
Caching.CMD 1 \site\wwwroot\*.html 
Caching.CMD 1 \site\wwwroot\*.htm 
Caching.CMD 1 \site\wwwroot\*.gif 
Caching.CMD 1 \site\wwwroot\*.jpg 

有點痛,但可行。

BTW - 以獲取HttpExpires值,設定在GUI中的值,然後運行

AdsUtil.vbs ENUM W3SVC/1/root/File.txt 

得到你需要

在IIS管理
+0

我想我必須在每次將新的CSS或js文件放入網站文件夾時運行該腳本。是對的嗎? – spakinz 2012-06-25 07:34:30

-2

我不知道這是你在找什麼,但它確實讓我的頁面不被緩存。

<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 
<META HTTP-EQUIV="Cache-Control" CONTENT="no-store"> 
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache"> 
<META HTTP-EQUIV="Expires" CONTENT="0"> 
<META HTTP-EQUIV="Cache-Control" CONTENT="max-age=0"> 

我從一篇文章中得到了這些我不再有參考的文章。

+0

這可能會阻止瀏覽器緩存內容,但大多數(全部?)中間緩存將依靠HTTP標頭,並不會閱讀HTML的。 – 2012-12-28 15:20:36

3

我認爲這是你所追求的,它是在IIS管理器中的HTTP標題下的內容過期。我使用在〜/ Resources之類的文件夾下粘貼靜態內容的模式,並將特定文件夾上的過期設置爲比應用程序的其餘部分長得多。

下面是完整的文章的鏈接:IIS 6.0 F1: Web Site Properties - HTTP Headers Tab

0

的實際值,你可以將它設置爲每個文件或者你可以(對於像aspx這樣的動態類型)在代碼中執行。之後,你有它設置,您需要檢查與像Mozilla Firefox瀏覽器+一個工具輸出動態組頭插件頭 - 或者你可以使用一個基於Web的工具,如http://www.httpviewer.net/

-3

可怕的解決方案,第一個命令來創建ADSUTIL意志由於您嘗試創建的文件已存在,因此錯誤爲-2147024713(0x800700B7)。

謝謝。

0

對於其他來自谷歌的人:這將是不工作在iis6但工作在7及以上。

在你的web.config:

<staticContent> 
    <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" /> 
</staticContent>